原题链接:C语言训练-角谷猜想
解题思路:
很有意思的一个猜想,在上世纪七十年还成为了一股风靡数学界的潮流,现在已经知道在7*10^11的数值里面角谷猜想都是成立的,不过如果无法在数学的角度给出证明,他只能停留在猜想的层面。如果有人能够攻克这个猜想,就可以期待下一届菲尔茨奖了。
给出一个if,判断是否为奇数,然后按照题目给出的两种情况写出/2和*3+1
这里跳出循环的开关是m,是因为当n=1的时候,结果是
1*3+1=4
4/2=2
2/2=1
而不是一个1,所以不使用n!=1作为开关。
参考代码:
#include <stdio.h> int main() { int i; int n,x,m=0; scanf("%d",&n); while(m!=1){ if(n==0){ break; } if(n%2==0){ printf("%d/2=%d\n",n,n/2); n/=2; }else{ printf("%d*3+1=%d\n",n,n*3+1); n=n*3+1; } m=n; } return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复