1 solutions
-
0
C :
#include<stdio.h> #include<string.h> int main() { int n,sum; while(1) { char a[20000]; scanf("%s",a); if(a[0]=='0')break; sum=0; n=strlen(a); for(int i=0;i<n;i++) //首次处理,期望回十亿之内 { sum+=(a[i]-'0'); //计数 //printf("%d\t",sum); } sum%=9; if(sum==0)printf("9\n"); else printf("%d\n",sum); }/**/ return 0; }C++ :
#include <stdio.h> int DigitalRoot(int num){ int root = num; while(root >= 10){ root = 0; while(num){ root += num%10; num /= 10; } num = root; } return root; } int main(){ char strN[1000]; while(scanf("%s",strN), strN[0]!='0'){ int i=0, n=0; while(strN[i]){ n += strN[i]-'0'; i++; } printf("%d\n", DigitalRoot(n)); } return 0; }
- 1
Information
- ID
- 18880
- Time
- 1000ms
- Memory
- 32MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By