大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C技巧 > 爬动的蠕虫

爬动的蠕虫

关键词:蠕虫循环07.  阅读(2821) 赞(17)

[摘要]本文是对循环爬动的蠕虫的讲解,对学习C编程技术有所帮助,与大家分享。

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

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

 /*
  * Main.c
  * C7-循环-07. 爬动的蠕虫
  *  Created on: 2014年7月26日
  *      Author: Boomkeeper
  *****测试通过*******
  */
 
 #include<stdio.h>
 
 int main(void) {
     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;
 }

关于这道题,我很疑惑的是“虫虫到底向上爬多长时间休息一次?”,题目中我仔细查看了N遍也没有发现明确的说明,无奈,我看到了下面一位大虾的程序后,只能承认“每分钟”了!



相关评论