1016 部分A+B
转跳点:??
正整数 A 的“D?A??(为 1 位整数)部分”定义为由 A 中所有 D?A?? 组成的新整数 P?A??。例如:给定 8,D?A??=6,则 A 的“6 部分”P?A?? 是 66,因为 A 中有 2 个 6。
现给定 A、D?A??、B、D?B??,请编写程序计算 P?A??+P?B??。
输入在一行中依次给出 A、D?A??、B、D?B??,中间以空格分隔,其中 0。
在一行中输出 P?A??+P?B?? 的值。
3862767 6 13530293 3
399
3862767 1 13530293 8
0
终于有一道能流畅写完的题了,思路行云流水。这道题考察了字符串和字符的比较没什么难点。就是注意要初始化,还有就是要注意C语言不初始化的话所有变量的都是未知值。
这道题就直接贴代码了:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define MAXSIZE 1024 4 5 int main(void) 6 { 7 int Num1 = 0, Num2 = 0; 8 char Numchar1, Numchar2; 9 char Numstr1[MAXSIZE], Numstr2[MAXSIZE]; 10 11 scanf("%s %c %s %c", Numstr1, &Numchar1, Numstr2, &Numchar2); 12 13 for (int i = 0; ‘\0‘ != Numstr1[i] || ‘\0‘ != Numstr2[i]; i++) 14 { 15 if (Numstr1[i] == Numchar1) 16 { 17 Num1 *= 10; 18 Num1 += Numchar1 - ‘0‘; 19 } 20 if (Numstr2[i] == Numchar2) 21 { 22 Num2 *= 10; 23 Num2 += Numchar2 - ‘0‘; 24 } 25 } 26 27 printf("%d", Num1 + Num2); 28 }
PTA不易,诸君共勉!
原文:https://www.cnblogs.com/daker-code/p/12155059.html