北大-计算概论
http://ica.openjudge.cn/baseb/06/
这题同时也是PAT Basic Level的第一道题目
http://pat.zju.edu.cn/contests/pat-b-practise/1001
答案:
#include<stdio.h>
main()
{
int n;
int i;
scanf("%d",&n);
while(n!=1)
{
if(n%2==1)
{
printf("%d*3+1=%d\n",n,3*n+1);
n=3*n+1;
}
else
{
printf("%d/2=%d\n",n,n/2);
n=n/2;
}
}
printf("End\n");
}
这题不难,但是背景确实很有意思的
转一下维基百科上关于这个题的研究历史介绍:
在1930年代,德国汉堡大学的学生考拉兹,曾经研究过这个猜想。在1960年,日本人角谷静夫也研究过这个猜想。但这猜想到目前,仍没有任何进展。
保罗·艾狄胥就曾称,数学上尚未为此类问题提供答案。他并称会替找出答案的人奖赏500元。
目前已经有分布式计算在进行验证。到2009年1月18日,已验证正整数到 5 × 260 = 5,764,607,523,034,234,880,也仍未有找到例外的情况。但是这并不能够证明对于任何大小的数,这猜想都能成立。
有的数学家认为,该猜想任何程度的解决都是现代数学的一大进步,将开辟全新的领域。目前也有部分数学家和数学爱好者,在进行关于“负数的3x+1”、“5x+1”、“7x+1”等种种考拉兹猜想的变化形命题的研究。
链接一下姥姥的仓储柜上对这题的介绍:
http://hi.baidu.com/chenyue_ll/item/f139772bc591160c42634ade