http://oj.tsinsen.com/A1117###
分析:一个数学题,设第二站上车人数为in,然后再随便推一推就推出公式了,下面代码还有可以优化(缩短)的空间
代码:
#include "bits/stdc++.h"
using namespace std;
int FibA[30] = { 1, 0, 1, 0 };
int FibI[30] = { 0, 0, 0, 1 };
int main() {
for (int i = 4; i < 30; ++i)
FibI[i - 1] = FibA[i] = FibA[i - 2] + FibA[i - 1];
int a, n, m, x, in;
scanf("%d%d%d%d", &a, &n, &m, &x);
int u = 0, v = 0;
for (int i = 0; i < n - 1; ++i) {
u += FibA[i]; v += FibI[i];
}
in = (m - u * a) / v;
u = v = 0;
for (int i = 0; i < x; ++i) {
u += FibA[i]; v += FibI[i];
}
printf("%d\n", u * a + v * in);
return 0;
}