UVA_694

本文解析了一道来自刘汝佳《算法竞赛入门经典》的题目,通过给定的步骤判断一个正整数A何时达到1或者超出限定值。文章详细介绍了实现过程及注意事项。

/********************************************

此题为刘汝佳算法竞赛入门经典中第一波习题中的一道题目,题目难度不高,只是简单地利用题目中所给的公式进行运算即可
题目要求为
1给定一个正整数A一个极限值lim,
2判断A是否为1 如是进行下一步
3如A为偶数则对A除二否则进行下一步
4若A为奇数则将A*3+1赋给A
所求目标为进行多少步时A从1中或4中跳出


此题难度不高,但应当注意的是细心,本人就因为忽略了代码中测试的一行freopen语句导致了几次UNAC

重点在于按照其要求去做不要随便打乱顺序



#include "stdio.h"



int main()
{
long long a,lim,i;

int count=0;

//freopen("out.txt","w",stdout);

while(~scanf("%lld%lld",&a,&lim))

{

if(a<=0&&lim<=0) break;
long long gdz=a;
count++;
i=1;
while(1)
{
if(a<=1) {break;}
if(a>lim) {break;}
if (a%2) a=3*a+1;
else a/=2;
if(a>lim) break;
i++;

}
printf("Case %d: A = %lld, limit = %lld, number of terms = %lld\n",count,gdz,lim,i);
}
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值