http://acm.hdu.edu.cn/showproblem.php?pid=1013
#include<iostream>
#include<string>
#include<stack> //栈的头文件
using namespace std;
int main()
{ int n,sum,i,t;
string str;
stack<int>s;
while(cin>>str)
{ t=0;
for(i=0;str[i]!='/0';i++)
t=t+str[i]-48; //字符串求和化长整数为短;
if(t==0) break;
while(t>=10) //求和循环,直到和小于10(既要输出的数);
{ sum=0;
while(t)
{ s.push(t%10); //个(各)位数进栈;
t=t/10;
}
while(!s.empty())
{ sum=sum+s.top(); // 取栈顶相加求和;
s.pop(); //删除栈顶,便于下次取栈顶不重复;
}
t=sum;
}
cout<<t<<endl;
}
return 0;
}