杭电OJ(HDOJ)1013题:Digital Roots(数值分解)
2014-10-17 11:17
453 查看
题意:
输入一个数字,将其各位数相加,小于10输出,在大于等于10,将所得的大于等于10的数,继续分解相加,直到小于10为止。
注意:
输入的数值会出现越界,所以要用字符串进行代替数值进行输入。
解决方案:
输入一个数字,将其各位数相加,小于10输出,在大于等于10,将所得的大于等于10的数,继续分解相加,直到小于10为止。
注意:
输入的数值会出现越界,所以要用字符串进行代替数值进行输入。
解决方案:
#include<iostream> #include<string.h> using namespace std; int main() { char str[1000]; int sum,i; while(cin>>str) { //初始为0 sum=0; //判断结束 if(str[0]=='0') { break; } //求出字符串所表示数值各位数的和 for(i=0;i<strlen(str);i++) { sum+=str[i]-'0'; } //将sum每位数相加求出i,再i赋与sum,如果sum<10就输出,否则不断循环。 while(sum>=10) { i=0; while(sum>0) { //i累加sum各位数的和 i+=sum%10; //sum去除个位,将十位变成个位 sum/=10; } sum=i; } cout<<sum<<endl; } return 0; }
相关文章推荐
- 杭电oj Problem-1013 Digital Roots
- 【杭电-oj】-1013-Digital Roots(把一个数的每一位拆开相加直到和小于10)
- 杭电oj(Java版)——1013 Digital Roots
- 杭电OJ--1013 Digital Roots
- 【杭电oj】1013 - Digital Roots(数论 - 九余定理,好题)
- 【杭电-oj】-2008-数值统计
- 杭电1013 Digital Roots
- HDOJ1013 Digital Roots
- hdoj 1013 Digital roots (陷阱水题)
- 杭电OJ(HDOJ)2037题:今年暑假不AC(贪心算法+排序)
- HDOJ1013 Digital Roots
- 杭电 1013 Digital Roots
- HDOJ 1013 Digital Roots
- Digital Roots(杭电1013)(字符串处理)(大数)
- HDOJ1013【Digital Roots】
- 杭电OJ(HDOJ)1865题:1sting(大数操作——Fibonacci数列)
- 杭电1013 之 Digital Roots
- 杭电OJ(HDOJ)1316题:How many Fibs?(大数操作——比较)
- HDOJ 1013 Digital Roots(大数)
- 杭电1013 Digital Roots