HDU-1013 Digital Roots

题意:

给出一个很大的数字(很长的字符串),然后将其位数相加 如果大于10则继续相加 直到结果小于10,输出结果

思路:

用string来记录不定长的字符串,然后将其用while()循环处理

#include <iostream>
#include <cstdio>
using namespace std;
int main(){
    string s;
    long long d,tmp;
    while(cin>>s&&s!="0"){
        d =0;
        for(int i=0;i<s.size();i++){
            d += (s[i] - '0');
        }
        while(d>9){
            tmp = d;
            d = 0;
            while(tmp){
                d += (tmp%10);
                tmp /= 10;
            }
        }
        printf("%lld
",d); 
    } 
} 
原文地址:https://www.cnblogs.com/Tianwell/p/11195542.html