1.按照题意写了代码,难点在第二站上下人数(设为b, 按题意应该是0<b<=a),要为b多做一层循环去试数。结果写
出的测试是就通过测试点4,其他全错,纳闷了!
2.下载了第一组数据(1 6 7 4),手算怎么也算不出7来,后来把b设成2(车上一个人,下来2个,再上去2个),通
过测试点1。按照此法扩展通过了测试点2。个人觉得和常识不符。
3.向上扩展测试点3(10 6 30 4)一直错,后来向下b=0,通过!个人觉得和题意不符。
#include<iostream>
using namespace std;
int main()
{
int a,n,x,m,q[21],p[21];
cin>>a>>n>>m>>x;
for(int b=0;b<=20;b++)
{
q[1]=a;p[1]=a;
q[2]=b;p[2]=a+b-b;
for(int i=3;i<n;i++)
{q[i]=q[i-1]+q[i-2];
p[i]=p[i-1]+q[i]-q[i-1];
}
cout<<"当b="<<b<<"最后下车人数"<<p[n-1]<<endl;
if(p[n-1]==m){
cout<<p[x]<<endl;
break;
}
}
return 0;
}