角谷猜想
III.角谷猜想所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2。对于计算得到的结果再按照上述规则重复处理,最终总能够得到1。例如,假定初始整数为5,计算过程分别为16、8、4、2、1。编程完成以下内容:
1. 要求输入一个整数,将经过处理得到1的过程输出来;
2. 使用递归函数;
3. 输出结束后,输出递归次数。
如:输入22,则输出11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
STEP = 15.
#include<stdio.h>
int digui(int n);
int main()
{
int n,m;
printf("输入一个整数n:");
scanf("%d",&n);
if(n==1)
{
printf("%d\n",n);
}
else
{
m=digui(n);
printf("%d\n",m);
}
}
int digui(int n)
{
while(n!=1)
{
if(n%2==0)
n=n/2;
else
n=n*3+1;
printf("%d\n",n);
}
return n;
}
大佬们帮我看看为啥我最后输出的都多一个1啊 谢谢