角谷猜想C语言版

mac2026-02-22  7

角谷猜想

所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘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 型

最新回复(0)