#include <iostream>
using namespace std;
int main()
{
string a;
int sum=0;
while(1)
{
sum=0;
cin>>a;
if(a[0]=='0')
{
break;
}
else
{
for(int i=0;i<a.length();i++)
{
sum=sum+(a[i]-'0');
}
while(sum<10)
sum=sum/10+sum;
}
cout<<sum<<endl;
}
return 0;
}
这道题看起来很好做,但提交大都会显示“Time Limit Exceeded”,这是因为(while(sum>10)sum=sum/10+sum;)与(while((m+sum)>10)m+=sum;sum=sum/10;)的区别;前一个算法比后哟个算法要简单,时间复杂性要小的多.......