題目描述
火車從始發站(稱爲第1站)開出,在始發站上車的人數爲a,然後到達第2站,在第2站有人上、下車,但上、下車的人數相同,因此在第2站開出時(即在到達第3站之前)車上的人數保持爲a人。從第3站起(包括第3站)上、下車的人數有一定規律:上車的人數都是前兩站上車人數之和,而下車人數等於上一站上車人數,一直到終點站的前一站(第n-1站),都滿足此規律。現給出的條件是:共有N個車站,始發站上車的人數爲a,最後一站下車的人數是m(全部下車)。試問x站開出時車上的人數是多少?
輸入輸出格式
輸入格式:
a(<=20),n(<=20),m(<=2000),和x(<=20),
輸出格式:
從x站開出時車上的人數。
輸入輸出樣例
輸入樣例#1:
5 7 32 4
輸出樣例#1:
13
#include<cstdio>
#include<iostream>
using namespace std;
int pa[20]={0,0,1,2,2,3,4,6,9,14,22,35,56,90,145,234,378,611,988,1598};
int px[20]={0,0,0,0,1,2,4,7,12,20,33,54,88,143,232,376,609,986,1596};
int a,n,m,x;
int main()
{
scanf("%d%d%d%d",&a,&n,&m,&x);
int b=(m-a*pa[n-1])/px[n-1];
printf("%d",a*pa[x]+b*px[x]);
return 0;
}