#P1857. Jacky888的数字
Jacky888的数字
Description
定义f变换是将一个数变为它所有数位上数字的和
给你一个数,对其不断进行f变换直到其 < 10
Jacky888想知道这个数最终变成几
Input Format
一行一个正整数,表示最初的数字Output Format
一个数,表示最终的数字
样例一:
19
样例二:
998244353
样例一:
1</p>
样例二:
2
Hint
对于20%的数据,n ≤ 10对于60%的数据,n ≤ 100000
对于80%的数据,n ≤ 1018
对于100%的数据,n ≤ 101000
#include <stdio.h>
#include <string.h>
char str[1005];
int res[1005];
int main() {
//freopen("modify.in", "r", stdin);
//freopen("modify.out", "w", stdout);
int i, j, cnt, len, sum = 0;
scanf("%s", str);
len = strlen(str);
for(i = 0; i < len; i++)
sum += (str[i] - '0');
while(1) {
if(sum < 10) {
printf("%d\n", sum);
break;
}
memset(res, 0, sizeof(res));
cnt = 0;
while(sum > 0) {
res[++cnt] = sum%10;
sum /= 10;
}
sum = 0;
for(i = 1; i <= cnt; i++)
sum += res[i];
}
return 0;
}