标签:
24 39 0
6 3
这道题说到底就是要注意可能它给的数字会很大,所以不能用int或是__int64来储存,要用字符串才行。
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
char a[1000],b[1000];
int i,j,k,l,ans,t;
while(scanf("%s",a)!=EOF){
if(a[0]=='0') break;
l=strlen(a);
strcpy(b,a);
while(1){
ans=0;
for(i=0;i<l;i++){
ans+=b[i]-'0';
}
if(ans>9) {
for(i=0;ans!=0;i++){
b[i]=(ans%10)+'0';
ans=ans/10;
}
b[i]='\0';
}
else break;
l=strlen(b);
}
printf("%d\n",ans);
}
}
HDOJ(1013) ——Digital Roots(字符串模拟题)
标签:
原文地址:http://blog.csdn.net/acmer_hades/article/details/43899081