天天看点

数学回味系列之21 - 角谷猜想

问题提出:

       角谷猜想 又称 冰雹猜想。

       对于 一个正整数n:

       1)如果 n 为偶数,就将它变为 n/2;

       2)如为奇数,则将它 乘3加1(3n+1);

       不断重复这样的运算,经过有限步后,一定可以得到1吗?

解题思路:

       和 哥德巴赫猜想一样,作者也不会去证明它,还是写个程序来进行验证。 

       参考代码:

/* linolzhang 2007.06
   角谷猜想 
*/
#include <stdio.h>

int main()
{
	while(true)
	{
		printf("请输入数字:");
		int n;
		scanf("%d", &n);

		int count = 0; // 运算次数
		while(n != 1)
		{
			count++;
			if(n%2 == 0)
				n = n / 2;     // 偶数 n=n/2
			else
				n = n * 3 + 1; // 奇数 n=n*3+1

			if(n == 1)
				printf(" %d\n\n",n);
			else
				printf(" %d >",n);
		}
	}
	return 0;
}
           

继续阅读