题目大意:给一个数字,每一位相加求和,不断重复过程,直到剩一位数字。
解法:考虑到输入的数字可以很大,把输入按照字符串格式读入,再逐位处理。
参考代码:
#include <iostream> #include <string> using namespace std; int main(){ string str; int sum,sum2,i; while(cin>>str&&str!="0"){ sum=0; for(i=0;i<str.size();i++){ sum+=(str[i]-'0'); } do{ sum2=0; while(sum>0){ sum2+=sum%10; sum/=10; } if(sum2<10){ cout<<sum2<<endl; break; } else sum=sum2; }while(sum>=10); } return 0; }