例题2-2 3n+1(角谷猜想)

猜想:对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次这样的变换,一定会使n变为1。例如:3》10》5》16》8》4》2》1。

输入n,输出变换的次数

样例输入:

3

样例输出:

7

#include<stdio.h>
main()
{
	int n,count=0;
	long long x; //longlong -2^63~2^63-1
	scanf("%d",&n);
	x=n;
	while(x!=1)
	{
		if(x%2==0)
		{
			x=x/2;
		}
		else
		{
			x=3*x+1;
		}
		count++;
	}
	printf("%d",count);
 }

使用longlong数据类可以避免在int类型中3n+1的越界问题

猜你喜欢

转载自blog.csdn.net/weixin_27848283/article/details/80979459