您的位置:首页 > 其它

蜗牛!快爬!解题报告

2013-07-11 10:49 141 查看
描述

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

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>=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;

}

[b]解题感想
:感觉这题挺简单的……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  解题报告