任给一个自然数,若为偶数则除以2,若为奇数则乘3加1,得到一个新的自然数后按上面的法则继续演算。若干次后得到的结果必为1
输入格式
一行,一个正整数n。(1 <= n <= 20000 )
输出格式
一行,一个整数,表示得到1所用的运算次数。
样例
输入数据 1
22
Copy
输出数据 1
15
#include<bits/stdc++.h>
using namespace std;
int sum=0;
bool os(int l) {
if(l%2==0) {
return 1;
} else {
return 0;
}
}
int k(int ls) {
if(ls==1){
return sum;
}
if(os(ls)==1) {
ls=ls/2;
sum++;
} else {
ls=ls*3+1;
sum++;
}
return k(ls);
}
int main () {
int n;
cin>>n;
cout<<k(n);
return 0;
}