题目大意
通过递推求出蜂房 aaa 到蜂房 bbb 有多少种方法
考纲知识点
基础数据类型、控制语句结构、递推的使用方法、变量的定义以及使用
数据范围
NNN(((000 <<< NNN ≤≤≤ 100100100)))
aaa 和 bbb(((000 <<< aaa <<< bbb ≤≤≤ 505050)))
解题思路
1. 举个例子:
1.1 蜂房 111 到蜂房 222 只有 111 种方法,直接到达
1.2 蜂房 111 到 333 共有 222 种方法,分别是直接到达和经过蜂房 222
1.2 蜂房 111 到 444 共有 333 种方法,分别是经过蜂房 333 到达、经过蜂房 222 到达、经过蜂房 222 再到蜂房 333 ,最后到达蜂房 444
2. 根据 1 的推导和往后的计算,我们可以得出:
2.1 蜂房编号相差为 111 的永远只有 111 个方法到达
2.2 蜂房编号相差为 222 的永远只有 222 个方法到达
2.3 从第 333 个蜂房开始,行走路线方案为前两个蜂房行走路线方案相加
先定义一个数组 aaa ,定义 aaa 的前两项(a[1]a[1]a[1] === 111、a[2]a[2]a[2] === 222)
从 333 开始循环到 505050 (因为NNN(((000 <<< NNN ≤≤≤ 100100100)))),后面再调用
第 222 个循环,输出数组 aaa 中 xxx −-− yyy 的值
参考程序
时间复杂度
O(50+n)O(50 + n)O(50+n)