代码
#include <iostream>
using namespace std;
int main(){
//在循环体中对n做运算,用变量num记录n到1所需要的步数
int n,num = 0;
cin >> n;
while(n != 1){
if(n % 2 == 0){ //n为偶数
n /= 2;
}else{ //n为奇数
n = (3 * n + 1) / 2;
}
num++;
}
//输出步数
cout << num;
return 0;
}
改进版
#include <iostream>
using namespace std;
int main(){
//在循环体中对n做运算,用变量num记录n到1所需要的步数
int n,num = 0;
cin >> n;
while(n != 1){
if(n % 2 != 0){ //n为奇数
n = (3 * n + 1);
}
n /= 2; //无论奇数还是偶数都需要/2.
num++;
}
//输出步数
cout << num;
return 0;
}