1087: 3003 折半处理
题目描述
对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3 * n + 1后砍掉一半,直到该数变为1为止。
请计算需要经过几步才能将n变到1,具体可见样例。输入
包含多个测试数据,每个测试数据包含一个整数n,当n为0 时表示输入结束。(1 <= n <= 10000)。
输出
对于每组测试数据请输出一个数,表示需要经过的步数,每组输出占一行。
样例输入 复制
3 1 0样例输出 复制
5 0
#include
int main()
{int n;while(scanf("%d",&n)!=EOF){if (n == 0)break;int step = 0;while (n != 1){if (n % 2 == 0)n /= 2;elsen = 3 * n + 1;step++;}printf("%d\n", step);}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
