这个题目也是数学问题,任何数经过操作都可以变为1。
操作:偶数的话除二,奇数的话乘上3再加1。
任意输入一个数,求经过操作的次数。
这里给出一个比较简单的代码。
#include <iostream>
using namespace std;
int main()
{
int n, step = 0;
cout << "in : ";
cin >> n;
while (n != 1)
{
if (n % 2 == 0)
n = n / 2; //偶数 则除2
else
n = 3 * n + 1; //奇数 则乘3+1
step++; //一次 step++
}
cout <<"step : "<< step << endl;
return 0;
}