PAT Basic 1016
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。
现给定 A、DA、B、DB,请编写程序计算 PA+PB。
输入格式:
输入在一行中依次给出 A、DA、B、DB,中间以空格分隔,其中 0<A,B<1010。
输出格式:
在一行中输出 PA+PB 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
注意头文件,memset的头文件
别忘了注意进位,还有最后进位之后的i值
在c1 c2的长度条件上,加个等号即可
或者算完i++,反正最后需要去0,从后往前去0
另外,以为自己没考虑0的情况,在前面多加了个c1=c2=0的特殊判断(在注释里)
加也就加了,竟然忘了加个return,这个错找了好久
最后优化一下,这第一版本有点复杂
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include <vector>
#include<algorithm>
#include<string.h>
#include<math.h>
#define max 1000
#define debug 0
using namespace std;
int main() {
#if debug
freopen("in.txt", "r", stdin);
#endif
int temp = 0;
long long A, B;
int DA, DB, c1 = 0, c2 = 0;
int SA[max], SB[max];
memset(SA, 0, sizeof(int) * max);
memset(SB, 0, sizeof(int) * max);
cin >> A >> DA >> B >> DB;
while (A > 0)
{
temp = A % 10;
A /= 10;
if (temp == DA)
SA[c1++] = DA;
}
while (B > 0)
{
temp = B % 10;
B /= 10;
if (temp == DB)
SB[c2++] = DB;
}
/*if (c1 == c2&&c1 == 0)
{
cout << 0;
return 0;
}*/
int i=0;
for (; i <= c1||i <=c2; i++)
{
SB[i] += SA[i];
if (SB[i] >= 10)
{
SB[i] %= 10;
SB[i + 1] += 1;
}
}
while (SB[i] == 0&&i>0)
i--;
while (i + 1)
{
cout << SB[i--];
}
#if debug
freopen("CON", "r", stdin);
#endif
return 0;
}
优化后
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include <vector>
#include<algorithm>
#include<string>
#include<math.h>
#define max 1000
#define debug 0
using namespace std;
int main() {
#if debug
freopen("in.txt", "r", stdin);
#endif
int temp = 0;
long long A, B;
int DA, DB, c1 = 0, c2 = 0;
int SA=0, SB=0;
cin >> A >> DA >> B >> DB;
while (A > 0)
{
temp = A % 10;
A /= 10;
if (temp == DA)
SA=SA*10+DA;
}
while (B > 0)
{
temp = B % 10;
B /= 10;
if (temp == DB)
SB = SB * 10 + DB;
}
cout << SA + SB;
#if debug
freopen("CON", "r", stdin);
#endif
return 0;
}
PAT Basic 1016的更多相关文章
- PAT Basic 1016 部分A+B (15 分)
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA.例如:给定 8,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 ...
- PAT甲级1016. Phone Bills
PAT甲级1016. Phone Bills 题意: 长途电话公司按以下规定向客户收取费用: 长途电话费用每分钟一定数量,具体取决于通话时间.当客户开始连接长途电话时,将记录时间,并且客户挂断电话时也 ...
- PAT Basic 1057
1057 数零壹 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有 ...
- PAT——乙级1016
乙级PAT的1016 乙级的题相对比较简单,我也是主要联系写代码的格式,而不是联系算法. 1016 部分A+B (15 point(s)) 正整数 A 的“DA(为 1 位整数)部分”定义为由 ...
- PAT (Basic Level) Practise (中文)-1039. 到底买不买(20)
PAT (Basic Level) Practise (中文)-1039. 到底买不买(20) http://www.patest.cn/contests/pat-b-practise/1039 小红 ...
- PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20)
PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20) http://www.patest.cn/contests/pat-b-practise/1 ...
- PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)
PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- PAT (Basic Level) Practise (中文)- 1026. 程序运行时间(15)
PAT (Basic Level) Practise (中文)- 1026. 程序运行时间(15) http://www.patest.cn/contests/pat-b-practise/10 ...
随机推荐
- 在CentOS 7+ 安装Kubernetes入门(单Master)
TL;DR; ***,***,***,重要的事情说三次.如果不会***,这篇文章就没有看下去的意义.作为一个技术人员如果不愿意折腾,很难有所作为.作为一个单纯的技术人员,最好把心思放在技术上,做到真正 ...
- Android动画模式
在Android中,有两种动画模式:Tween Animation(渐变动画)和Frame Animation(帧动画).渐变动画是通过对场景里的对象不断做图像变换(平移.缩放.旋转等)来产生动画效果 ...
- windows server 2008性能测试出现大量time_wait
netstat -an | find "TCP" /C netstat -an | find "TIME_WAIT" /C taskkill /im mmdrv ...
- net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解
asp.net core 内置DI容器的一点小理解 DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...
- lvs-dr
第5节 dr模型 在rs上配置 :rip 和vip vip定义在lo别名上 Director 上配置:vip 和dip 都只需要一块网卡 网卡都桥接 Vip: 192.168.0.105 ...
- ansible基础命令实例
参考:https://www.cnblogs.com/ilurker/p/6421624.html 1. 使用自定义的hosts 格式: ansible 组机匹配 -i 自定义的hosts - ...
- 修改注册表.exe的文件目录
文件打开方式不能选择默认打开文件 cmd >regedit 以sublime_text为例 HKEY_CLASSES_ROOT/Applications/sublime_text.exe/she ...
- Python scrapy爬虫学习笔记01
1.scrapy 新建项目 scrapy startproject 项目名称 2.spiders编写(以爬取163北京新闻为例) 此例中用到了scrapy的Itemloader机制,itemloade ...
- 使用 Django-debug-toolbar 优化Query 提高代码效率
一段程序执行效率慢,除了cpu计算耗时外,还有一个很重要的原因是SQL的Duplicated过多,使用Django-debug-toolbar能够快速找出哪些地方的SQL可以优化,提高程序执行效率 1 ...
- day4 class work answer
count=0 s = input("请输入内容:") # asd234fsdafa5456fsdaf1 while s: s=s.lstrip("abcdefghijk ...