UVA 694

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=635

这题是100的延伸,给一个数,和一个限制,求出这个数会停在规定步骤的第二步,或者超出限制数,最后

#include<stdio.h>
int main()
{
 long long a,b,n,js=1,A;//因题目给出的数据较大,所以用long long
 while(scanf("%lld%lld",&A,&b))
      {
       if(A<0&&b<0)
          break;
       n=1;
       a=A;
       while(a<=b&&a!=1)
           {
            if(a%2==0)
              a/=2;
            else if(a%2==1)
              a=3*a+1;
            n++;
           }      //按100的做法
       if(a>b)
         n--;//因为停在步骤2和步骤4的算法不大相同,所以这里减一
       printf("Case %lld: A = %lld, limit = %lld, number of terms = %lld\n",js++,A,b,n);
      }
 return 0;
}

  

给出步骤数

 

转载于:https://www.cnblogs.com/huzhenbo113/articles/2915850.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值