首页 > 试题广场 >

编写程序,输入一个自然数,求经过多少次变换可得到自然数1

[问答题]

对于一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1,经过如此有限次运算后,总可以得到自然数值1。编写程序,输入一个自然数,求经过多少次变换可得到自然数1。例如:输入22,输出STEP=16。

我觉得输入22,输出STEP应该是15吧。。
#include<stdio.h>
int main(){
	int n,step=0;
	scanf("%d",&n);//输入自然数 
	while(n!=1){
		if(n%2==0)
			n/=2;
		else	n=n*3+1;
		step++;
	}
	printf("%d",step);//输出所需步数 
	return 0;
}

发表于 2020-04-07 16:53:49 回复(0)