杭电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。
但是觉得用的方法效率太低了。。
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。
但是觉得用的方法效率太低了。。
相关文章推荐
- 杭电 acm 1013 Digital Roots
- 杭电ACM 1013 Digital Roots
- 杭电acm 1013 Digital Roots
- 杭电acm—1013 Digital Roots
- 杭电ACM 1013 Digital Roots
- 杭电acm1013 hdu-acm-1013解题报告
- 杭电ACM OJ 1013 Digital Roots 如何用递归优雅地把一个未知长度的长整数的每一位拆分出来
- Digital Roots(杭电1013)(字符串处理)(大数)
- 杭电1013_Digital Roots——java
- 杭电 1013 Digital Roots
- 杭电HOJ 1013 Digital Roots
- 【杭电】1013【 Digital Roots】 犯下的错误
- 杭电1013——Digital Roots(简单题)
- 杭电oj Problem-1013 Digital Roots
- 渣渣ACM日记——1013-Digital Roots (HDOJ)
- 杭电 1013 Digital Roots
- Digital Roots 杭电1013
- 杭电OJ(HDOJ)1013题:Digital Roots(数值分解)
- 杭电ACM 1013 Digital Root
- 杭电1013 Digital Roots