有一口深度为high米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬up米,夜里则顺井壁向下滑down米,若青蛙从某个早晨开始向外爬,对于任意指定的high、up和down值(均为自然数),计算青蛙多少天能够爬出井口?
输入3个正整数:high、up和down。
输出一个整数,表示天数。输出单独占一行。
提示
数据均在int范围内
循环模拟。注意,不能简单地认为每天上升的高度等于白天向上爬的距离减去夜间下滑的距离,因为若白天能爬出井口,则不必等到晚上。
若爬不出去则输出“jinzhilinb!”
#include <stdio.h>
int main()
{
int c,i,h,u,d; //c为爬升与滑落的差,j,u,d分别为high,up,down
scanf("%d%d%d",&h,&u,&d);
c=u-d;
if(c<=0&&h>u) //当爬的高度小于下滑的高度且爬升的高度小于井深,不能爬出
{printf("jinzhilinb!");}
else
{
for(i=1;;) //循环
{
int h1=c; //h1为新引入用以计算总的爬升高度
while(h1+d<h) //h1+d为截至白天累计高度
{ //注意题目白天能爬出则不必等到晚上
i++;
h1=c*i;
}
break;
}
printf("%d",i); //输出答案
}
}