求助20分
查看原帖
求助20分
1200191
封禁用户楼主2024/7/22 16:40
#include <bits/stdc++.h>
using namespace std;
const int M=1e4+50;
int a,n,m,x,ans;
int plus[M],minus[M];
int tap[20],sum[20];
int main(){
	cin>>a>>n>>m>>x;
	if(x<3){
		ans=a;
	}
	else if(x>=3){
		ans+=a;
	}
	else if(x>=4){
		tap[1]=tap[2]=1;
		for(int i=3;i<=n-4;i++){
			tap[i]=tap[i-1]+tap[i-2];//斐波拉契
		}
		for(int i=1;i<=n-4;i++){
			sum[i]=sum[i-1]+tap[i];
		}
		int m=(m-sum[n-5]*a-ans)/sum[n-4];
		ans+=sum[x-4]*a+sum[x-3]*m;
	}
	cout<<ans<<endl;
	
	return 0;
}
	//plus[0]=0;
	//minus[0]=0;
	//plus[1]=minus[1];
	//plus[i]=plus[i-1]+plus[i-2];(i>2)斐波拉契数列
	//minus[i]=plus[i-1];
	//......
	//tap[n]-m=0;
2024/7/22 16:40
加载中...