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 }

 




posted @ 2014-05-12 16:37  繁星苑  阅读(2072)  评论(0编辑  收藏  举报