c语言中3n+1问题,C语言 验证3n+1问题

问题描述:

C语言 验证3n+1问题

对于给定的一个正整数,若该数为偶数则将其除以2,若为奇数则将其乘3再加1.反复进行上述过程,直到结果为1时停止.这就是著名的“3n+1”问题.要求对于给定的整数,按3n+1规则变换到1所需要的数字变换次数.

输入

输入数据文件有多个数据分别对应一种情形.

输出说明

对于每一个整数,要求先输出“Case #:”(#为序号),然后输出读入的整数、逗号、空格、计算结果.若输入的数据为非正整数,结果为-1.

输入样例

1024 1023 0 100 66

输出样例

Case 1:1024,10

Case 2:1023,62

Case 3:0,-1

Case 4:100,25

Case 5:66,27

我的程序是

#include

int main(void)

{

int i,j,b;

double x,a;

while(scanf("%d",&x))

{

if(x>0){

a=x;

i=0;

b=x;

while(b>1)

{

if(b%2==0)

b=b/2;

else

b=3*b+1;

i++;

}

j++;

printf("Case %d:%.lf,%lf",j,a,i);

}

if(b

1个回答

分类:

综合

2014-11-01

问题解答:

我来补答

#include

int main(void)

{

\x09int i, j = 0, b;

\x09int x, a;

\x09while (scanf("%d", &x) == 1)

\x09{

\x09\x09if (x <= 0) {

\x09\x09\x09j++;

\x09\x09\x09printf("Case %d: %d, -1\n", j, x);

\x09\x09\x09continue;

\x09\x09}

\x09\x09a = x;

\x09\x09i = 0;

\x09\x09b = x;

\x09\x09while (b > 1)

\x09\x09{

\x09\x09\x09if (b % 2 == 0)

\x09\x09\x09\x09b = b / 2;

\x09\x09\x09else

\x09\x09\x09\x09b = 3 * b + 1;

\x09\x09\x09i++;

\x09\x09}

\x09\x09j++;

\x09\x09printf("Case %d: %d, %d\n", j, a, i);

\x09}

} 再答: 如果没有其他问题就采纳一下吧

展开全文阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值