2471: Jacky888的数字
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:16
解决:4
题目描述
定义f变换是将一个数变为它所有数位上数字的和
给你一个数,对其不断进行f变换直到其 < 10
Jacky888想知道这个数最终变成几
输入
一行一个正整数,表示最初的数字
输出
一个数,表示最终的数字
样例输入 复制
样例一:
19
样例二:
998244353
样例输出 复制
样例一:
1
样例二:
2
提示
对于20%的数据,n ≤ 10
对于60%的数据,n ≤ 100000
对于80%的数据,n ≤ 1018
对于100%的数据,n ≤ 101000
对于60%的数据,n ≤ 100000
对于80%的数据,n ≤ 1018
对于100%的数据,n ≤ 101000
#include#include 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; }