井底一只青蛙出井,已知井深M米,青蛙每天白天能沿井壁向上爬N米,晚上休息不动,却由于自重下滑K米(假设M>N>K,例如:M=10;N=3;K=1)
编写C语言程序,输出第几天爬出井,累计爬了多少米,下滑了多少米
#include<stdio.h>
/*循环模拟。注意,不能简单地认为每天上升的高度等于白天向上爬的距离减去夜间下滑的距离,
因为若白天能爬出井口,则不必等到晚上。*/
/*将前一天夜晚与第二天白天合并*/
/*M>N>K保证第一天不会跳出,且能够跳出*/
#define M 10
#define N 3
#define K 1
int main()
{
int n , s ,num = N,b=0;//n为天数,s为爬的高度
for(s = N,n=1;s < M;n++)
{
s = s - K + N;
num = num + K + N;
b = b + K;
if (s > M)
{
num -= (s - M);
}
}
printf("%d,%d,%d\n", n, num,b);
return 0;
}