码迷,mamicode.com
首页 > 其他好文 > 详细

7-17 爬动的蠕虫(15 分)

时间:2017-12-14 23:51:34      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:body   bre   std   +=   单位   超过   col   输入   lang   

一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?

这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。

输入格式:

输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。

输出格式:

在一行中输出蠕虫爬出井的时间,以分钟为单位。

输入样例:

12 3 1

输出样例:

11
/*假设爬行一分钟,休息一分钟*/ 
#include<stdio.h> 
int main() 
{
     int n, u, d;//井口高度,上爬量和下滑量
     int time = 0, distance = 0;//虫虫消耗的时间(分钟),距离井底的距离(寸)
     scanf("%i %i %i", &n, &u, &d);
     /**
      * 第1分钟,爬;
      * 第2分钟,滑;
      * 第3分钟,爬;
      * 第4分钟,滑;
      * ...
      * 时间为偶数,虫虫下滑;
      * 时间为奇数,虫虫上爬。
      */
     do {
         time++;
         if (time % 2 != 0)
          {
             distance += u;
        } else
         {
             distance -= d;
         }
     } while (distance < n);
 
     printf("%i\n", time);
 
     return 0;
 }
#include<stdio.h> 
int main() 
{
     int n,u,d,time=0,H=0;  
    scanf("%d%d%d",&n,&u,&d);  
    while(1)  
    {  
        H+=u;  
        time++;  
        if(H>=n)break;  
        H-=d;  
        time++;  
  
    }  
    printf("%d\n",time);  
    return 0;  
 }

 

7-17 爬动的蠕虫(15 分)

标签:body   bre   std   +=   单位   超过   col   输入   lang   

原文地址:http://www.cnblogs.com/2228212230qq/p/8040516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!