对大神来说很简单的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 展开
编程实现输入一个自然数,若为偶数,则把它除以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 展开
展开全部
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询