蜗牛!快爬!解题报告

描述

很久以前有一只蚂蚁,某天在路上走着走着,突然看见了一只蜗牛,爬的很慢。心想自己虽然比它小,可是跑得比它快,于是蚂蚁想跟蜗牛进行一次马拉松比赛,想证明它的实力。蚂蚁跟蜗牛商量后决定在星期六下午进行马拉松比赛。

The day is coming….比赛跑道为一条直线,Unlucky!!跑道上有很多坑。注意哦,坑!蜗牛想知道它掉下坑底后,爬上来需要多少时间,你的任务是帮忙蜗牛算出它掉入每个坑后,从坑底爬上来的时间,蜗牛每爬半个小时,就得休息半个小时,休息的时候,蜗牛会往下掉一定的深度。坑的深度,往上爬的高度以及休息时往下掉的深度给定。

 

输入

输入第一行包含一个整数N(0<=N<=1000),表示跑道上坑的数量。

接下来N行,代表N个坑的测试数据,每组测试数据占一行,包含三个整数H、i、j(用一个空格分开),代表坑的深度、往上爬的高度、休息时往下掉的深度。(0<=H、i、j<2^16)

 

输出

对于每一个坑,输出蜗牛爬上岸所需要的时间(采用进一法,单位:小时)。不能爬上来则输出“Never see sun!”

 

输入样例

2

10 10 0

10 0 0

 

输出样例

1

Never see sun!

 

解题思路:先把看不到太阳的情况讨论下,主要分析j<i<H的情况。实际上蜗牛每次往上爬的高度为i-j,只要判断最后一次H-(i-j)是否大于i即可。不大于的话时间自加,否则输出。

代码

#include<iostream>

using namespace std;

main()

{

       intN;

       intH[1000],i[1000],j[1000];

       cin>>N;

       for(inta=0;a<N;a++)

       {

              cin>>H[a]>>i[a]>>j[a];

       }

       for(intb=0;b<N;b++)

       {

              if(i[b]>=H[b])

                     cout<<1<<endl;

              else

                     if(j[b]>=i[b])

                            cout<<"Never seesun!"<<endl;

                     else

                     {

                            intcount=1;

                            for(;H[b]-i[b]>0;)

                            {

                                   H[b]=H[b]-i[b]+j[b];

                                   count++;

                            }

                            cout<<count<<endl;

                     }

       }

       return0;

}

解题感想:感觉这题挺简单的……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值