版权声明:ACM代码随意转载。算法描述需备注来源。谢谢合作。 https://blog.csdn.net/Sensente/article/details/89791010
杭电1013 http://acm.hdu.edu.cn/showproblem.php?pid=1013
题目大意:
所谓数根。即数字各个位置之和。
若和大于10,则需要再次求和,直到小于10.
AC代码:
#include <iostream>
#include <cstring>
#include <algorithm>
#include <memory.h>
#include <cmath>
#include <stack>
//#define DEBUG
using namespace std;
typedef long long ll;
char a[10000]; //为了防止超范围
int main() {
while(cin>>a) {
if(a[0]=='0') return 0;
int len=strlen(a);
int sum=0;
for(int i=0;i<len;i++) {
sum+=a[i]-'0';
}
if(sum<=9) cout<<sum<<endl;
else cout<<sum%9<<endl<<(sum-1)%9+1<<endl; //“九余数定理”?
}
return 0;
}