PTA——乘2后不变

PTA

7-49 Have Fun with Numbers

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 21
 4 
 5 int main(){
 6     char original[N];
 7     int doubledNum[N],i,digitsCount[10];
 8     int carry = 0,isSame = 1;
 9     gets(original);
10     
11     for(i=0;i<strlen(original);i++){
12         doubledNum[i] = 2*(original[i]-'0');
13     }
14     for(i=strlen(original)-1;i>=0;i--){
15         if(i>0){
16             doubledNum[i-1] += doubledNum[i]/10;
17             doubledNum[i] %= 10;
18         }
19         else{
20             carry += doubledNum[i]/10;
21             doubledNum[i] %= 10;
22         }
23     }
24     if(carry){
25         isSame = 0;
26     }else{
27         for(i=0;i<10;i++){
28             digitsCount[i] = 0;
29         }
30         for(i=0;i<strlen(original);i++){
31             digitsCount[original[i]-'0']++;
32         }
33         for(i=0;i<strlen(original);i++){
34             digitsCount[doubledNum[i]]--;
35         }
36         for(i=0;i<10;i++){
37             if(digitsCount[i]!=0){
38                 isSame = 0;
39                 break;
40             }
41         }
42     }
43     if(isSame){
44         printf("Yes\n");
45     }else{
46         printf("No\n");
47     }
48     if(carry){
49         printf("%d",carry);
50     }
51     for(i=0;i<strlen(original);i++){
52         printf("%d",doubledNum[i]);
53     }
54     return 0;
55 }

猜你喜欢

转载自www.cnblogs.com/cxc1357/p/10760152.html