有一些特定的运算程序,算来算去,运算中的数字会陷入某些循环圈,再也跳不出来这种现象,可以称为数学中的"黑洞"。
"角谷猜想"就是其中的一个:任意一个自然数,如果它是偶数,则将它除以二;若它是奇数,则将它乘三,再加一……如此下去,经过有限步运算之内,其结果必然是一。
本代码是通过if/else嵌套循环实现的。
本代码只能运行输入正整数。
输入的正整数最大不得超过十的九次方,否则程序将无法运行。
#includeusing namespace std; int num,i,a,b,c,d,e; int main() { cout<<"请任意输入一个自然数:n"; cin>>num; i=1; while(i<=3000000){ if(num%2==0) num=num/2; else num=num*3+1; i=i+1; } a=num; if(num%2==0) num=num/2; else num=num*3+1; b=num; if(num%2==0) num=num/2; else num=num*3+1; c=num; if(num%2==0) num=num/2; else num=num*3+1; d=num; if(num%2==0) num=num/2; else num=num*3+1; e=num; if(a==1) cout<<"已进入循环:"; if(b==1) cout<<"已进入循环:"; if(c==1) cout<<"已进入循环:"; if(a==1) cout< 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)