神马题目。。。看看吧,防止入坑
查看原帖
神马题目。。。看看吧,防止入坑
327288
helpcyg楼主2020/7/9 15:28

我看了讨论才知道原来题目和题目描述不匹配。。。

说好每次都有人上车的,哪来0个人。。。

前代码:

#include<iostream>
using namespace std;
int main(){
	int a,n,m,x;
	cin>>a>>n>>m>>x;
	int ans;
	
	int s = 1;
	
	int list[n - 1];

	while(true){
		int add1 = a,add2 = s;
		list[0]=a;
		list[1]=a;
		//add1 前2次上车,add2 前一次上车 
		//cout<<list[0]<<endl;
		//cout<<list[1]<<endl;
		for(int i = 2;i < n - 1;i++){
			list[i] =list[i-1]+ add1 + add2;
			list[i] -= add2;
			//cout<<list[i]<<" "<<add1<<" "<<add2<<endl;
			int temp = add2;
			add2 = add1 + add2; 
			add1 = temp;
		}
		//cout<<"list[n-2]:"<<list[n-2]<<endl;
		if (list[n-2]==m){
		    ans = list[x-1];
		    //cout<<"s:"<<s<<endl;
			break;		
		}
		s++;
	}
    cout<<ans;
    return 0;
}

拿了75分;

改了之后的代码:

#include<iostream>
using namespace std;
int main(){
	int a,n,m,x;
	cin>>a>>n>>m>>x;
	int ans;
	
	int s = 0;//就这里改了
	
	int list[n - 1];

	while(true){
		int add1 = a,add2 = s;
		list[0]=a;
		list[1]=a;
		//add1 前2次上车,add2 前一次上车 
		//cout<<list[0]<<endl;
		//cout<<list[1]<<endl;
		for(int i = 2;i < n - 1;i++){
			list[i] =list[i-1]+ add1 + add2;
			list[i] -= add2;
			//cout<<list[i]<<" "<<add1<<" "<<add2<<endl;
			int temp = add2;
			add2 = add1 + add2; 
			add1 = temp;
		}
		//cout<<"list[n-2]:"<<list[n-2]<<endl;
		if (list[n-2]==m){
		    ans = list[x-1];
		    //cout<<"s:"<<s<<endl;
			break;		
		}
		s++;
	}
    cout<<ans;
    return 0;
}

拿了满分。。。 大家千万别入坑

2020/7/9 15:28
加载中...