这题测试数据可能会很长,所以不能简单的用传统方法
考虑用处理字符串的方式来进行,但开数组也没完没了的,所以就直接对每一个字符来处理
即,每得到一个字符马上加到 sum 上去(sum是结果),如果sum大于9了,马上对sum进行处理,个位和十位相加令其变为一个数(结果一样)
代码如下:
#include <iostream>
using namespace std;
int main()
{
//freopen("E:\\in.txt","r",stdin);
char c;
int sum = 0;
while(c = getchar())
{
if(c == '\n')
{
cout << sum << endl;
c = getchar();
if(c == '0')
break;
else
sum = c - '0';
continue;
}
sum += c - '0';
if(sum > 9)//只需处理一次即可,因为对sum处理的及时,所以sum不可能大于18
{
sum = sum%10 + sum/10;
}
}
return 0;
}