xxx法則HDU 3782
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
Sample Output
Source
浙大コンピュータ大学院生の再試験の上機試験-2009年
なんか書いたような気がします...またコードが見つからない...
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);
}
}