c语言题任何一个自然数,如果是偶数,就除以2,如果是奇数,就乘以3再加1。最后,经过若干次迭代得到1。
答案:2 悬赏:30 手机版
解决时间 2021-04-29 12:39
- 提问者网友:难遇难求
- 2021-04-28 13:58
c语言题任何一个自然数,如果是偶数,就除以2,如果是奇数,就乘以3再加1。最后,经过若干次迭代得到1。
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-04-28 14:05
因为n==1满足(n%2!=0)追问意思就是经过
if(n%2==0)
{
n=n/2;
count=count+1;
}
后结果变成了1,然后还是执行了下面不必要的语句是吗?
那为什么 else if(n%2!=0)就是对的
与if的区别是什么啊追答加了else:
执行上一段代码之后就不执行后面的 if
不加else:
执行上一段代码之后还会执行后面的 if
if(n%2==0)
{
n=n/2;
count=count+1;
}
后结果变成了1,然后还是执行了下面不必要的语句是吗?
那为什么 else if(n%2!=0)就是对的
与if的区别是什么啊追答加了else:
执行上一段代码之后就不执行后面的 if
不加else:
执行上一段代码之后还会执行后面的 if
全部回答
- 1楼网友:胯下狙击手
- 2021-04-28 14:22
#include
int JG(int n);
main()
{
int n,i,sum;
for(i=1;;i++)
{
scanf("%d",&n);
sum=JG(n);
printf("%d\n",sum);
}
return 0;
}
int JG(int n)
{
int sum=0;
while(n!=1)
{
if(n%2==0)
n=n/2;
else
n=n*3+1;
n=n;
sum=sum+1;
}
return sum;
}
int JG(int n);
main()
{
int n,i,sum;
for(i=1;;i++)
{
scanf("%d",&n);
sum=JG(n);
printf("%d\n",sum);
}
return 0;
}
int JG(int n)
{
int sum=0;
while(n!=1)
{
if(n%2==0)
n=n/2;
else
n=n*3+1;
n=n;
sum=sum+1;
}
return sum;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯