洛谷 P1011 車站
阿新 • • 發佈:2017-05-18
++ -1 span 的人 scanf print blog %d 格式
題目描述
火車從始發站(稱為第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
思路稍稍有點難理解,小小數學題:
>f[1]=a
>f[2]=b
>f[3]=1b+a
>f[4]=2b+a
>f[5]=3b+2a
>f[6]=5b+3a
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #include <string> 6 using namespacestd; 7 int main() 8 { 9 int a,b,n,m,x,fibo[21]={0}; 10 scanf("%d%d%d%d",&a,&n,&m,&x); 11 fibo[0]=0;fibo[1]=1; 12 for(int i=2;i<=n;i++) 13 fibo[i]=fibo[i-1]+fibo[i-2]; 14 b=(m-(fibo[n-3]+1)*a)/(fibo[n-2]-1); 15 printf("%d",(fibo[x-1]-1)*b+(fibo[x-2]+1)*a); 16 }
洛谷 P1011 車站