xxx法則HDU 3782

1260 ワード


xxxの法則
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3017    Accepted Submission(s): 2225
Problem Description
1つの数nに対して、偶数であれば、nを半分切ります.奇数であれば、nを3*n+1にしてその数が1になるまで半分切ります.
nを1に変更するには、サンプルを表示するにはいくつかのステップが必要です.
 
Input
テストには複数のインスタンスが含まれ、各インスタンスには整数nが含まれ、nが0の場合、入力が終了することを示す.(1<=n<=10000)
 
Output
各テスト・インスタンスについて、経過するステップ数を示す数を出力し、各グループの出力が1行を占めます.
 
Sample Input

   
   
   
   
3 1 0

 
Sample Output

   
   
   
   
5 0

 
Source
浙大コンピュータ大学院生の再試験の上機試験-2009年
なんか書いたような気がします...またコードが見つからない...
#include <stdio.h>

int n,flag;
int main()
{
    while(~scanf("%d",&n) && n != 0)
    {
        flag = 0;
        while(n != 1)
        {
            if(n % 2 == 0)
                n = n/2;
            else n = (n * 3 + 1 )/2;
            flag++;
        }
        printf("%d
",flag); } }