上车人数

来源:互联网 发布:兴文排课软件 编辑:程序博客网 时间:2024/06/12 01:49

真心感觉题目很好,除了数学思想,还有考察仔细读题了没(输入是a,n,题目描述是n,a)

题意:中文;

解析:

车站编号: 1 3 45 6 7

上车人数 a ba + b a + 2*b2*a+3*b 3*a+5*b......

下车人数 0 bb a + ba+2*b 2*a+3*b......

剩下的人数 a a 2 * a  2*a + b 3*a+2*b4*a+4*b ......


用表易得:上车人数=fib( n - 3 ] + fib( n - 2 ) == m;

    剩下的人数=( fib( x - 2 ) + 1 ) *a + (fib( x - 1 ) + 1 ) * b;

// 上车人数.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include<iostream>#include<cstdio>using namespace std;const int maxn = 1005;int num[ maxn ], fib[ maxn ];//int _tmain(int argc, _TCHAR* argv[])int main(){int n, a, m, x, b;fib[ 0 ] = 0;fib[ 1 ] = 1;for( int i = 2; i < maxn; ++i )fib[ i ] = fib[ i - 1 ] + fib[ i - 2 ];while( cin >> a >> n >> m >> x ){// m = ( fib[ i - 2 ] + 1 ) * a + ( fib[ i - 1 ] - 1 ) * b; b = ( m  - ( fib[ n - 3 ] + 1 ) * a ) / ( fib[ n - 2 ] - 1 );long long ans = ( fib[ x - 2 ] + 1 ) * a + ( fib[ x - 1 ] - 1 ) * b;cout << ans << endl;}return 0;}


原创粉丝点击