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

一条蠕虫长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;
 }
时间: 2024-08-03 10:50:11

7-17 爬动的蠕虫(15 分)的相关文章

循环-07. 爬动的蠕虫(15)

1 #include<iostream> 2 using namespace std; 3 int u,d; 4 int sum(int t){ 5 if(t%2==0) 6 return (u-d)*t/2; 7 else 8 return u*(t/2+1)-d*t/2; 9 } 10 int main(){ 11 int t,n; 12 cin>>n>>u>>d; 13 for(t=1;sum(t)<n;) 14 t++; 15 cout<

PAT:循环-07. 爬动的蠕虫(15) 错两个

#include<stdio.h> #include<math.h> int main() { int a,b,c,tmp=0,time=0,tag=0; scanf("%d%d%d",&a,&b,&c); while(tmp<=a) { if(tag==0) { ++time; tmp+=b; tag=1; } else { ++time; tmp-=c; tag=0; } } printf("%d\n",ti

循环-07. 爬动的蠕虫

循环-07. 爬动的蠕虫(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 一条蠕虫长1寸,在一口深为N寸的井的底部.已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬.在休息的过程中,蠕虫又下滑了D寸.就这样,上爬和下滑重复进行.请问,蠕虫需要多长时间才能爬出井? 这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了.初始时,蠕虫是趴在井底的(即高度为0). 输入格

PTA基础编程题目集——爬动的蠕虫

原题链接https://pintia.cn/problem-sets/14/problems/797 这题一开始考虑时犯了一些错误,一开始是这样考虑的,按题目的意思,每2分钟蠕虫爬行的距离是(U-D)寸.那么平均每分钟爬行的距离是(U-D+1)/2寸.然后对照样例数据N=12,U=3,D=1算出需要8分钟爬完,当然这个结果是错的.调整一下思路,假设时间为t,爬行距离为s.当t=0时,s=0:当t=1时,s=U:当t=2时,s=U-D:当t=3时,s=U-D+U:当t=4时,S=U-D+U-D:.

YT14-先来练练手之爬动的蠕虫

Problem Description An inch worm is at the bottom of a well n inches deep. It has enough energy to climb u inches every minute, but then has to rest a minute before climbing again. During the rest, it slips down d inches. The process of climbing and

PAT 乙级 1091 N-自守数 (15 分)

1091 N-自守数 (15 分) 如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为"N-自守数".例如 3×92?2??=25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守数. 本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数. 输入格式: 输入在第一行中给出正整数 M(≤20),随后一行给出 M 个待检测的.不超过 1000 的正整数. 输出格式: 对每个需要检测的数字,如果它是 N-自守数就在一行中

练习2-12 输出华氏-摄氏温度转换表 (15 分)

练习2-12 输出华氏-摄氏温度转换表 (15 分) 输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper].且每次增加2华氏度的华氏-摄氏温度转换表. 温度转换的计算公式:,其中:C表示摄氏温度,F表示华氏温度. 输入格式: 在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开. 输出格式: 第一行输出:"fahr celsius" 接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius

1061 判断题 (15 分)

题目:1061 判断题 (15 分) 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量.第二行给出 M 个不超过 5 的正整数,是每道题的满分值.第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”.随后 N 行,每行给出一个学生的解答.数字间均以空格分隔. 输出格式: 按照输入的顺序输出每个学生的得分,每个分数占一行. 输入样例: 3 6 2 1 3

pta 数据结构 习题2.4 递增的整数序列链表的插入(15 分)

习题2.4 递增的整数序列链表的插入(15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List L, ElementType X ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; type