【剑指offer】斐波那契序列与跳台阶
来源:互联网 发布:javaweb商城源码 编辑:程序博客网 时间:2024/06/05 18:35
剑指offer上的第9题,简单题,在九度OJ上测试通过。
主要注意以下几点:
1、用非递归实现,递归会超时
2、结果要用long long保存,不然会发生结果的溢出,从而得到负值
3、如果是在VC++6.0下编译的,long long是illegal的,要用_int64代替,同时输出的转化以字符也要用%I64d代替%lld
时间限制:1 秒
内存限制:32 兆
- 题目描述:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:
- 输入:
输入可能包含多个测试样例,对于每个测试案例,
输入包括一个整数n(1<=n<=70)。
- 输出:
对应每个测试案例,
输出第n项斐波那契数列的值。
- 样例输入:
3
- 样例输出:
2
AC代码:
/**************************************************************
Problem: 1387
User: mmc_maodun
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/
延伸:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
首先如果只有1个台阶,则只有1种跳法;
如果有2个台阶,则有2种跳法:1-1,2;
如果有3个台阶,则有3种跳法:1-2,2-1,1-1-1;
......
如果现在有n个台阶,我们假设有f(n)种跳法,我们往前看最后一跳的情况,显然之后两种情况:跳1个台阶和跳2个台阶。
如果最后一次跳是跳了1个台阶,则前面n-1个台阶有f(n-1)种跳法,如果最后一跳时跳了2个台阶,则前面n-2个台阶有f(n-2)中跳法。因此,如果n>2,则f(n) = f(n-1) + f(n-2),这便用到了斐波那契序列,只是这里的初始条件是f(1) = 1,f(2) = 2。程序同上面的类似,这里不再给出!
0 0
- 【剑指offer】斐波那契序列与跳台阶
- 【剑指offer】斐波那契序列与跳台阶
- 剑指offer——斐波那契数列,跳台阶、变态跳台阶、矩形覆盖
- 剑指offer 面试题9 斐波那契数列/青蛙跳台阶/矩形覆盖/变态跳台阶
- 剑指offer-算法题练习:part8 跳台阶-斐波那契数列问题
- 剑指offer-算法题练习:part9 变态跳台阶-斐波那契数列问题
- 【剑指offer】跳台阶——斐波那契数列的实际应用
- 【面试题】剑指Offer-9-斐波那契数列&&青蛙跳台阶
- 【剑指offer-解题系列(7、8)】斐波那契数列、跳台阶
- 剑指offer面试题9 斐波那契数列及青蛙跳台阶问题
- 剑指Offer-斐波那契数列以及跳台阶问题
- 剑指offer 面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖) 题解
- 跳台阶/斐波那契数列
- 【算法题】:跳台阶问题及斐波那契Fibonacci序列
- Offer题9 斐波那契数列&青蛙跳台&矩形覆盖
- 剑指offer-跳台阶
- 【剑指offer】跳台阶
- 剑指offer--跳台阶
- RecyclerView中含有CheckBox多选、单选和RadioGoup全解
- 63. Unique Paths II[dp]
- android源码解析(6)--HandlerThread分析及使用对比
- 互联网理财产品代销平台业务架构设计
- VMware 新建虚拟机过程
- 【剑指offer】斐波那契序列与跳台阶
- 阿里云服务器ECS centos7.2搭建nginx环境以及负载均衡
- C笔试之一
- Oracle表结构操作
- 基于状态驱动的AOP技术在模块解耦中的应用
- 变量及其传递
- LayaAir引擎创建helloworld
- 算法提高 最长字符序列 (递归or动态规划)
- systemctl命令完全指南