前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【优秀题解】 题解1179:上车人数 (C++描述)(求出规律即可,简单易懂)

【优秀题解】 题解1179:上车人数 (C++描述)(求出规律即可,简单易懂)

作者头像
编程范 源代码公司
发布2018-08-16 14:52:48
3650
发布2018-08-16 14:52:48
举报

解题思路: 我们只需要罗列出每一站的上车人数和每一站的下车人数来求出总数即可看出规律。

我们设上车人数为始发站人数为 a , 第二站上车人数为 x ,由此列出规律.

由此看出:第一站和第二站人数为a,以后每一站的人数都构成一个相似与斐波那契数列的数列

不妨我们设a的倍数的数列为f(n),x的倍数的数列为F(n),则规律为 a 的倍数为

f(n-1)+f(n-2)+1, x 的倍数为F(n-1)+F(n-2)-1.这样我们就能写出我们的代码了.

参考代码:

#include "iostream"

using namespace std;

int main()

{

int a, n, m, b; // a 为始发站人数,n 为车站个数,m为终点站人数,b为第几个车站

int x; // x 为第二站上车和下车的人数

cin >> a >> n >> m >> b;

int f[1001] = { 1,1,2 }; // a 的系数

int F[1001] = { 0,0,0 }; // x 的系数

int s1 = 0, s2 = 0;

for (int i = 3; i < n-1; i++)

{

f[i] = f[i - 1] + f[i - 2] - 1; //根据上述规律求出每站 a 的系数

F[i] = F[i - 1] + F[i - 2] + 1; //根据上述规律求出每站 x 的系数

}

x = (m - f[n-2] * a) / f[n-2]; //求出第二站的人数

int sum = f[b - 1] * a + F[b - 1] * x; //求出第 b 站开出时车上的人数

cout << sum << endl;

return 0;

}

(文章出自我站大神“何堂鑫27”)

点击“http://www.dotcpp.com/blog/8928.html”去撩原作者

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程范 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档