Num 14: HDOJ: 题目1013 : Digital Roots
发布时间:2020-12-14 02:27:18 所属栏目:大数据 来源:网络整理
导读:原题链接 ??? 水题,但是一开始的时候没想到是有关大数的问题; ??? 结果一直在按 int 型去做,一直WA… ; ???? 一开始的错误代码: #includestdio.hint main(){int num[2000],numb;while(scanf("%d",numb)!=EOFnumb){while(1){int i,j,root=0;for(i=0;numb
原题链接 ??? 水题,但是一开始的时候没想到是有关大数的问题; ??? 结果一直在按 int 型去做,一直WA… ; ???? 一开始的错误代码:
#include<stdio.h> int main() { int num[2000],numb; while(scanf("%d",&numb)!=EOF&&numb) { while(1) { int i,j,root=0; for(i=0; numb!=0; i++) { num[i]=numb%10; numb/=10; } for(j=0; j<i; j++) { root+=num[j]; } if(root>=0&&root<=9) { printf("%dn",root);break; } else numb=root; } } return 0; } ???? 因为example的误导,让我以为用不到大数问题; ???? AC代码:
#include<stdio.h> #include<string.h> int main() { int a,root,k,i; char s[10000]; while(scanf("%s",&s)) { root=0; a=0; k=strlen(s); if(s[0]=='0') break; for(i=0;i<k;i++) a+=s[i]-'0'; while(a||root>=10) { if(a) { root+=a%10; a/=10; } else a=root,root=0; } printf("%dn",root); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |