对于一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1,经过如此有限次运算后,总可以得到自然数值1.编写程序,输入一个自然数,求经过多少次变换可得到自然数1。例如:输入22,输出STEP=16。
解题思路:
模拟
代码如下:
#include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n))
{
int cnt=1;
while(n!=1)
{
if(n%2==0)
{
n=n/2;
}
else
{
n=n*3+1;
}
cnt++;
}
printf("%d\n",cnt);
}
return 0;
}