PAT1016 部分A+B
题目
正整数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的值。
输入样例
输出样例
输入样例2
输出样例2
思路
遍历数字(最好用字符串或字符数组来保存),每找到一个加一位,直到遍历完后相加。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <stdio.h> #include <cstring> using namespace std; int main(int argc, char const *argv[]) { char a[10], c[10]; int b, d; scanf("%s %d %s %d", &a, &b, &c, &d); long long bb = 0, dd = 0; for(int i = 0; i < strlen(a); i++) { if (a[i] - 48 == b) { bb = 10 * bb + b; } } for(int i = 0; i < strlen(c); i++) { if (c[i] - 48 == d) { dd = 10 * dd + d; } } printf("%d", bb + dd); return 0; }
|