题目大意:给出一个数num,计算num每一个位数上的值之和,的到新的num,如果num>= 10, 重复操作,直到为个数。
解题思路:第一次输入的时候位数很多,得用字符串读入。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
const int N = 10005;
int main () {
long long sum;
char str[N];
while (scanf("%s", str), str[0] != '0') {
while (1) {
int len = strlen(str);
if (len > 1) {
sum = 0;
for (int i = 0; i < len; i++)
sum = sum + str[i] - '0';
sprintf(str, "%lld", sum);
} else {
printf("%s\n", str);
break;
}
}
}
return 0;
}