标签:esc inpu rip tput nbsp printf ring more other
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 79180 Accepted Submission(s):
24760
1 #include <stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char a[1500]; 6 int sum; 7 while(scanf("%s",&a)!=EOF) 8 { 9 if(strlen(a)==1&&a[0]==‘0‘) 10 break; 11 sum=0; 12 for(int i=0;i<strlen(a);i++) 13 { 14 sum=sum+a[i]-‘0‘; 15 if(sum>=10) 16 sum=sum/10+sum%10; 17 } 18 printf("%d\n",sum); 19 } 20 return 0; 21 }
1 /*因为输入的数字可能很长,而一个数的digital root和该数每一位的和的digital root相等,所以可以直接算出所输入的数字的和(不会超过范围),然后根据常规方法求digital root。 2 */ 3 #include <stdio.h> 4 #include <string.h> 5 6 int root(int x) 7 { 8 int r=0; 9 while (x) 10 { 11 r+=x%10; 12 x/=10; 13 } 14 if (r<10) 15 return r; 16 else 17 return root(r); 18 } 19 20 int main() 21 { 22 char c; 23 int r=0; 24 while (c=getchar(),1) 25 { 26 if (c==‘\n‘) 27 { 28 if (r==0) 29 break; 30 printf("%d\n",root(r)); 31 r=0; 32 } 33 else 34 { 35 r+=c-48; 36 } 37 } 38 }
1 //9余数定理 !! 2 #include<stdio.h> 3 #include<string.h> 4 char a[10010]; 5 int main() 6 { 7 int n; 8 while(~scanf("%s",a),strcmp(a,"0")) 9 { 10 int sum=0; 11 int len=strlen(a); 12 for(int i=0;i<len;++i) 13 sum+=a[i]-‘0‘;//字符化为数字 14 printf("%d\n",(sum-1)%9+1); 15 } 16 return 0; 17 }
HDU 1013 Digital Roots(字符串,大数,九余数定理)
标签:esc inpu rip tput nbsp printf ring more other
原文地址:http://www.cnblogs.com/Roni-i/p/7190742.html