对大神来说很简单的C语言问题

题目内容:编程实现输入一个自然数,若为偶数,则把它除以2;若为奇数,则把它乘以3加1。过如此有限次运算后,总可以得到自然数值1。输出经过多少次可以得到自然数1和每次得到的... 题目内容:
编程实现输入一个自然数,若为偶数,则把它除以2;若为奇数,则把它乘以3加1。过如此有限次运算后,总可以得到自然数值1。输出经过多少次可以得到自然数1和每次得到的值。

输入格式:

输入一个自然数

输出格式:

输出经过多少次可以得到自然数1和每次得到的值

输入样例:

22

输出样例:
22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1
step=16
展开
 我来答
胡杨112233430
2015-05-25 · 超过22用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:34.5万
展开全部
#include <stdio.h>

int main()
{
int idata;
int step = 0;
printf("输入一个自然数\n");
scanf("%d", &idata);

while(idata != 1)
{
printf("%d,", idata);
if( idata % 2 == 0)
{
idata /= 2;
}
else
{
idata = idata * 3 + 1;
}

step++;
}

step++;
printf("%d\nstep=%d\n", idata, step);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
123sadfas34
2015-05-25 · TA获得超过162个赞
知道答主
回答量:361
采纳率:38%
帮助的人:58.3万
展开全部
#include<stdio.h>
main()
{
int n,count=1;
scanf("%d",&n);
for(;;)
{
printf("%d ",n);
if(n==1)
break;
else if(n%2==0)
{
n=n/2;
count++;
}
else
{
n=n*3+1;
count++;
}
}
printf("\nstep=%d",count);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式