PAT 1016 部分A+B C语言
1016. 部分A+B (15)
正整数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
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 int number(int a, int b); 6 int newNum(int num, int repeatTime); 7 int main() 8 { 9 int a,b, la, lb; 10 scanf("%d%d%d%d", &la,&a,&lb,&b); 11 12 int a1 = number(la,a); 13 int b1 = number(lb, b); 14 15 int new_a = newNum(a, a1); 16 int new_b = newNum(b,b1); 17 printf("%d",new_a +new_b); 18 19 return 0; 20 } 21 22 int number(int a, int b){ 23 int cnt = 0; 24 while( a != 0){ 25 if(a % 10 == b) cnt++; 26 a /= 10; 27 } 28 if ( a == b) cnt ++; 29 return cnt; 30 } 31 32 int newNum(int num, int repeatTime){ 33 int result = 0,i = 0; 34 for(; i < repeatTime; i++){ 35 result += num * (pow(10,i)); 36 } 37 38 return result; 39 }