[3782]:xxx定律

来源:互联网 发布:人工智能 仿真机器人 编辑:程序博客网 时间:2024/05/29 09:47

Problem Description
对于一个数n,如果是偶数,就把n砍掉一半;如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止。
请计算需要经过几步才能将n变到1,具体可见样例。

Input
测试包含多个用例,每个用例包含一个整数n,当n为0 时表示输入结束。(1<=n<=10000)

Output
对于每组测试用例请输出一个数,表示需要经过的步数,每组输出占一行。

Sample Input
3
1
0

Sample Output
5
0

简单题

/*  author : Yangchengfeng*/#include<stdio.h>int main(){    int n;    while(scanf("%d", &n)!=EOF){        int time = 0;        if(n == 0){            break;        } else {            while(n != 1){                if(n % 2 == 0){                    n /= 2;                } else {                    n = (3 * n + 1) / 2;                }                time++;            }            printf("%d\n", time);        }    }    return 0;}

这里写图片描述

0 0
原创粉丝点击