hdu 1013 Digital Roots
题目大意:给出一个数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; }