转跳点:??
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?? 的值.
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
作者: CHEN, Yue
单位: 浙江大学
时间限制: 150 ms
内存限制: 64 MB
终于有一道能流畅写完的题了, 思路行云流水. 这道题考察了字符串和字符的比较没什么难点. 就是注意要初始化, 还有就是要注意 C 语言不初始化的话所有变量的都是未知值.
这道题就直接贴代码了:
- #include <stdio.h>
- #include <stdlib.h>
- #define MAXSIZE 1024
- int main(void)
- {
- int Num1 = 0, Num2 = 0;
- char Numchar1, Numchar2;
- char Numstr1[MAXSIZE], Numstr2[MAXSIZE];
- scanf("%s %c %s %c", Numstr1, &Numchar1, Numstr2, &Numchar2);
- for (int i = 0; '\0' != Numstr1[i] || '\0' != Numstr2[i]; i++)
- {
- if (Numstr1[i] == Numchar1)
- {
- Num1 *= 10;
- Num1 += Numchar1 - '0';
- }
- if (Numstr2[i] == Numchar2)
- {
- Num2 *= 10;
- Num2 += Numchar2 - '0';
- }
- }
- printf("%d", Num1 + Num2);
- }
PTA 不易, 诸君共勉!
来源: http://www.bubuko.com/infodetail-3367822.html