ZZULI 1072: 青蛙爬井
题目描述
有一口深度为high米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬up米,夜里则顺井壁向下滑down米,若青蛙从某个早晨开始向外爬,对于任意指定的high、up和down值(均为自然数),计算青蛙多少天能够爬出井口?
输入
输入3个正整数:high、up和down。
输出
输出一个整数,表示天数。输出单独占一行。
样例输入 Copy
10 2 1
样例输出 Copy
9
提示
循环模拟。注意,不能简单地认为每天上升的高度等于白天向上爬的距离减去夜间下滑的距离,因为若白天能爬出井口,则不必等到晚上。
来源/分类
#include<stdio.h>
int main()
{
int high, up, down, day, sum;//sum用作缓存变量
scanf("%d%d%d", &high, &up, &down);
day = 0;//起始值赋值为0
sum = 0;//缓存变量赋值为0
for(day = 1; ; day++)//循环条件
{
sum += up;//先缓存向上的距离,然后向下的,二者想加,避免单独计算而出错
if(sum >= high)//白天黑夜分开循环保证了当白天或黑夜爬出时不用再执行错误循环
break;//当if语句成立时利用break跳出循环
sum -= down;//也即保证了(up - down) * day形成错误
}
printf("%d\n", day);
return 0;
}