```c++
#include
int main()
{ int n,i,a,b,c,d,e,f;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{ for(i=1;i++;)
{ if((i*b-i*c)>=c)
d=i*b+i*c;
e=(i-1)*c;
printf("%d %d %d",i,d,e);
break;
}
}
return 0;
}
```
你都不判断爬的要比下滑的快吗,下滑比爬还快永远都爬不出去呀,要求你输出error你程序里连error字样都没有能对才怪
这题根本不用循环
假设三个输入分别是a,b,c
a是井深,b是爬的高度,c是滑的高度
首先要判断除非b>=a或者b>c才有可能爬出去,否则爬不出去
定义三个变量d,e,f,
d是天数,e是总共爬的距离,f是总共下滑的距离
d=(a-b-1)/(b-c)+2 //这个公式有点抽象,不太好讲,但是你可以带入各种数字验证
f=c*(d-1) //经过几天就下滑几次
e=a+f //整个井的高度,加上退的高度,就是一共爬的高度
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<string.h>
#include<math.h>
#define llu unsigned long long
using namespace std;
bool compare(int a,int b)
{
return a>b;
}
int main()
{
int h,u,d,n=0;//此处用h代表青蛙离井口的高度,开始时等于井的深度,n代表天数
cin >> h >> u >> d ;
while(h-d>0){//当离井口的高度减去昨天晚上掉下去的高度大于0,证明昨天白天还没有爬到井口,继续循环
h-=u;//爬高u,离井口的高度减去u
n++;//天数+1
h+=d;//离井口的高度增加了d
}
cout << n << endl ;
return 0;
}