安徽大学第九届大学生程序设计竞赛 网络预选赛 B
来源:互联网 发布:.ape 文件播放软件 编辑:程序博客网 时间:2024/04/30 00:29
B. 迭代归一
Time Limit: 1000 ms Memory Limit: 64 MB
Total Submission: 323 Submission Accepted: 74
Total Submission: 323 Submission Accepted: 74
Description
我们把一个正整数的每一位上的数字加起来,得到新的数字,我们把这样的一次操作称为一次迭代变换。直到这个数字只有一位数。
如,9876经过一次变换成为9+8+7+6=30,经过第二次变换成为3+0=3,结束。
那么9876就经过了两次迭代变换。如今给一个正整数,问需要迭代变换多少次后会停止。
如,9876经过一次变换成为9+8+7+6=30,经过第二次变换成为3+0=3,结束。
那么9876就经过了两次迭代变换。如今给一个正整数,问需要迭代变换多少次后会停止。
Input
一个整数t,表示测试数据组数(1<=t<=100)。
对于每组测试数据,只有一行,表示一个正整数,正整数最多有100000位。
对于每组测试数据,只有一行,表示一个正整数,正整数最多有100000位。
Output
输出若干行,每行对应每组数据需要迭代变换的次数
Sample Input
OriginalTransformed321099999999
Sample Output
OriginalTransformed012
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;char num[100005];int fun(int n){ int yushu = 0; while(n > 0) { yushu += n % 10; n /= 10; } return yushu;}int main(){int t, snum;scanf("%d", &t);while(t--){ scanf("%s",num); if(strlen(num) == 1) printf("0\n"); else{ snum = 0; for(int i = 0; i < strlen(num); i++) { snum += num[i] - '0'; } if(snum < 10) {printf("1\n"); continue;} int i; for( i = 2; ; i++) { snum = fun(snum); if(snum < 10) break; } printf("%d\n", i); }} return 0;}
0 0
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 B
- 安徽大学第九届大学生程序设计竞赛 网络预选赛
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 A
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 C
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 D
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 F
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 G
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 H
- 安徽大学第九届大学生程序设计竞赛热身赛
- 中南大学第九届大学生程序设计竞赛网络预选赛
- 外卖的撕‘哔’大战 Contest2074 - 中南大学第九届大学生程序设计竞赛网络预选赛
- “正直角三角形” Contest2074 - 中南大学第九届大学生程序设计竞赛网络预选赛
- 中南大学第十一届大学生程序设计竞赛网络预选赛总结
- 第十八届中山大学程序设计竞赛网络预选赛B题
- ACM/ICPC黑龙江省第四届大学生程序设计竞赛网络预选赛有感
- 第九届广东省大学生程序设计竞赛排名
- 湖南省第九届大学生程序设计竞赛
- 湖南省第九届大学生计算机程序设计竞赛
- 顺序表应用2:多余元素删除之建表算法
- 使用phantomjs新的
- 53. Maximum Subarray(unsolved)
- 群论&polya定理笔记
- 内存泄漏和内存溢出
- 安徽大学第九届大学生程序设计竞赛 网络预选赛 B
- H5 Manifest实现缓存刷新
- LeetCode | 455. Assign Cookies
- L1-006. 连续因子
- TI-DM8127:MCFW、ISS中对sensor的驱动和控制
- Linux学习之——文件特殊权限(三)
- 【LINUX】find命令
- hdoj1050 moving tables 贪心 最大重叠区间数
- TCP和UDP的区别