- n が偶数の時は 2 で割る。
- n が奇数の時は 3 倍し、1 を足す。
- 整数 n は1以上でかつ上記の計算を繰り返す途中の値が1000000以下となる程度の整数とあったのでint からlongに変更。
/******************************
* 2012/07/15 *
* AOJ_Volume1_0158 *
* Collatz's Problem *
* crane *
*******************************/
#include<iostream>
using namespace std;
int main(){
long long int n;
while(cin >> n, n){
int count = 0;
while(1){
if(n == 1) break;
if(n % 2 == 0) n /= 2;
else n = (n*3) + 1;
count++;
}
cout << count << endl;
}
return 0;
}
0 件のコメント:
コメントを投稿