您的位置:首页 > 其它

杭电ACM-1013-Digital Roots

2014-01-18 20:26 567 查看
#include <stdio.h>

int ww(int n)

{int i=0,t,k=0;

while(n!=0)

{ t=n%10;

 n/=10;

 i++;

 k+=t;

}

return k;

}

int main()

{int n,k,i,j;

scanf("%d",&n);

while(n!=0)

{

 k=ww(n);

 while(k>9)

  k=ww(k);

 printf("%d\n",k);

 scanf("%d",&n);

}

return 0;

}

看起来很简答的一道题目,但是上传上去是错的。

#include <stdio.h>

int qq(int n)

{int t,k=0;

while(n!=0)

{

 t=n%10;

 k+=t;

 n/=10;

}

return k;

}

int ww(char s[])

{int i=0,k=0;

while(s[i]!='\0')

{

 k+=s[i]-'0';

 i++;

}

return k;

}

int main()

{int n,k,i,j;

char s[100000];

scanf("%s",s);

while(s[0]!='0')

{

 k=ww(s);

 while(k>9)

  k=qq(k);

 printf("%d\n",k);

 scanf("%s",s);

}

return 0;

}

原来是大数的问题,不能用int。

但是觉得用的方法效率太低了。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: