角谷猜想
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。
如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。
输入
一个正整数N(N <= 2,000,000)
输出
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出End。如果输入为1,直接输出End
代码如下:
#include<stdio.h>
int main(){
unsigned long long i; //可能不够长 所以得长长整型无符号
scanf("%lld",&i);
while(i!=1) {
if(i%2==0&&i>=0){
//偶数
printf("%lld/2=",i);//改为unsigned long long要注意同时修改修饰符
i=i/2;
printf("%lld\n",i);
}
else if(i%2!=0&&i>=0){
//奇数
printf("%lld*3+1=",i);
i=i*3+1;
printf("%lld\n",i);
}
}
printf("End");
return 0;
}
tips:该程序的注意点在定义时需要注意int型可能会溢出,所以需要long long型,同时因为是正整数,所以可以设置为unsigned long long 型
本文介绍了如何使用C语言编程实现角谷猜想。程序接收一个不超过2,000,000的正整数输入,输出从输入整数到1的计算步骤,避免了int类型溢出问题,采用unsigned long long类型确保数值范围。"
111684372,9205297,XMLHttpRequest发送数据到后端问题解析,"['前端开发', 'Ajax', 'HTTP请求', '数据交互']
582





