题目:
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 resting then repeats. How long before the worm climbs out of the well? We'll always count a portion of a minute as a whole minute and if the worm just reaches the top of the well at the end of its climbing, we'll assume the worm makes it out.
题意:
注意:每次休息时间就要增加1,这个不能忘记
每分钟怕u,这样一加有可能超出总长,一定中间加上判断
#include<stdio.h>
int main(){
int n,u,d,sum;
while(scanf("%d%d%d",&n,&u,&d),n+u+d)
{
int i;sum=0;
for(i=0;i<=n;)
{
i+=u;
sum++;
if(i>=n) break;
i=i-d,sum++;//休息的时间
}
printf("%d\n",sum);
}
return 0;
}
解题者:杨聪颖
解题时间:2014-9-27
题目描述:有个虫子,从n深处向上爬,每次爬u就要休息一分钟,休息这一分钟会滑下d,求最后爬上来需要多长时间,
解题思路:利用for循环进行循环相加,累计计算
难点:容易忽略休息一分钟时,每次要加上那一分钟
关键点:for循环的利用
体会:题目不难,但马虎时容易出错
备注:中间一次的if判断不能忘记,否则会出现重复,回出现多加
源代码
#include<stdio.h>
int main(){
int n,u,d,sum;
while(scanf("%d%d%d",&n,&u,&d),n+u+d)
{
int i;sum=0;
for(i=0;i<=n;)
{
i+=u;
sum++;
if(i>=n) break;
i=i-d,sum++;//休息的时间
}
printf("%d\n",sum);
}
return 0;
}
代码详细注释
/*
解题者:杨聪颖
解题时间:2014-9-27
题目描述:有个虫子,从n深处向上爬,每次爬u就要休息一分钟,休息这一分钟会滑下d,求最后爬上来需要多长时间,
编程环境:vc6.0
解题思路:利用for循环进行循环相加,累计计算
难点
关键点
备注*/