#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; }