//
// Created by alleyf on 2023/6/24.
//
#include<bits/stdc++.h>
using namespace std;
int xxx_law(int& num, int& cnt) {
if (num == 1) {
return cnt;
} else if (num % 2 != 0) {
cnt++;
num = 3 * num + 1;
num /= 2;
return xxx_law(num, cnt);
} else {
cnt++;
num /= 2;
return xxx_law(num, cnt);
}
}
int main() {
int num;
while (cin >> num) {
int cnt = 0;
cout << xxx_law(num, cnt) << endl;
}
}
> 递归求解容易理解,亦可使用while迭代求解。

京公网安备 11010502036488号