HDOJ 1013
2014-11-22 16:34
176 查看
题目大意:输入一个大数,求出该大数的所有位数之和,之后判断该和是否为一位数,若不是一位数则继续求出该和的每位数字之和,反复此过程直至和为一位数。最后输出这个一位数。
算法思想:主要注意一点,将大数以字符串的形式表示,在求和的时候转化为数字。
代码如下:
算法思想:主要注意一点,将大数以字符串的形式表示,在求和的时候转化为数字。
代码如下:
#include <iostream> #include <cstring> using namespace std; int d[10]; char s[10001]; int DigRoot(int n){ int sum=0; if(n<10) return n; else{ for(int i=0;i<10;i++){ d[i]=n%10; n=n/10; sum+=d[i]; if(n==0) break; } if(sum<10) return sum; else return DigRoot(sum); } } int main(){ while(cin>>s&&strcmp(s,"0")!=0){ int i=0,sum=0; while(s[i]!='\0'){ sum+=s[i]-'0'; i++; } cout<<DigRoot(sum)<<endl; } return 0; }
相关文章推荐
- HDOJ 1013题Digital Roots 大数,9余数定理
- HDOJ1013 Digital Roots(高精度+数位分离求和)
- HDOJ1013 Digital Roots
- hdoj 1013
- HDOJ 1013题Digital Roots 大数,9余数定理
- 杭电OJ(HDOJ)1013题:Digital Roots(数值分解)
- { ioccc }hdoj1013
- HDOJ 1013
- hdoj 1013 Digital Roots
- hdoj 1013 (没有体会到需要大数)
- HDOJ 1013 Digital Roots
- HDOJ1013 Digital Roots
- HDOJ&nbsp;&nbsp;1013&nbsp;&nbsp;&nbsp;Digital&nbsp;Roots
- 渣渣ACM日记——1013-Digital Roots (HDOJ)
- HDOJ 1013 Digital Roots
- HDOJ 1013
- hdoj1013_Digital Roots
- HDOJ 1013 Digital Roots
- HDOJ 1013 Digital Roots(算是大数水题)
- hdoj-1013-Digital Roots