P 1016 部分A+B
转跳点:🐏
1016 部分A+B
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。例如:给定 8,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。
现给定 A、DA、B、DB,请编写程序计算 PA+PB。
输入格式:
输入在一行中依次给出 A、DA、B、DB,中间以空格分隔,其中 0。
输出格式:
在一行中输出 PA+PB 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
作者: CHEN, Yue
单位: 浙江大学
时间限制: 150 ms
内存限制: 64 MB
终于有一道能流畅写完的题了,思路行云流水。这道题考察了字符串和字符的比较没什么难点。就是注意要初始化,还有就是要注意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不易,诸君共勉!
大道五十,天衍四九,人遁其一!