#include <iostream>
#include <string>
using namespace std;
int main()
{
string num; //由于可能输入特别大的整数,所以不能使用基本类型存储,使用string类型
while (getline(cin, num))
{
if (num[0] == '0') //整数中以0开头的只有0
break;
int len = num.length();
int temp;
//由于计算的是每一位相加的和,所以可以在相加的过程中,就判断是否需要进位
for (int i = 0; i < len - 1; i++)
{
//两个整数的ASCII相加,想要得到数字状态下对应的结果,需要减去0的ASCII
temp = num[i] + num[i + 1] - '0';
if (temp <= 57) //数字9的ASCII为57,如果超过57,则需要进位,即对结果-10+1
num[i + 1] = temp;
else
num[i + 1] = temp - 10 + 1;
}
if (num[len - 1] > 57) //最后一位存储的是结果,如果大于9,则需要进位
cout << num[len - 1] - 10 + 1 << endl;
else
cout << num[len - 1] << endl;
}
return 0;
}
继续加油。