剑指offer:跳台阶(循环和递归)
来源:互联网 发布:用c语言画太极图 编辑:程序博客网 时间:2024/05/17 08:32
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
考虑1个台阶,只有1跳法,则 f(1) = 1
考虑2个台阶,可以1级级条,可以一次跳2级,有两种跳法,则f(2) = 2
考虑3个台阶,它可以由1级跳来得到,也可以由2级跳来得到,所以它的跳法为 f(3-1) + f(3-2) = f(1) + f(2)
考虑n个台阶,它的跳法为 f(n-1) + f(n-2)
实则上为斐波那契数列。可以用递归,也可以用循环方法求解。
代码:
int jumpFloor(int number) {int fn; int f1 = 1, f2 = 2; if(number<0) return 0; if(number == 1) return f1; if(number == 2) return f2; int count = 3; fn = f1 + f2; while(count<number){ f1 = f2; f2 = fn; fn = f1 + f2; count++; } return fn; }
0 0
- 剑指offer:跳台阶(循环和递归)
- 剑指offer 9题 【递归和循环】 跳台阶
- 《剑指Offer》递归和循环——跳台阶
- 剑指offer:(9)递归和循环:变态跳台阶
- 《剑指offer》刷题笔记(递归和循环):变态跳台阶
- 《剑指offer》刷题笔记(递归和循环):跳台阶
- 剑指offer: 变态跳台阶(循环与递归)
- 剑指offer--跳台阶(递归问题)
- 跳台阶(递归 循环)
- 剑指offer--变态跳台阶(巧用递归)
- 剑指offer_递归与循环---跳台阶
- 变态跳台阶(递归 循环)
- 剑指offer-递归和循环
- 剑指offer-跳台阶
- 【剑指offer】跳台阶
- 剑指offer--跳台阶
- 《剑指offer》跳台阶
- 剑指Offer-跳台阶
- 让我们一起Go(一)
- ssh比较实际的一个学习顺序
- 简单的正则表达式匹配
- 从4行代码看右值引用
- 一个顶N个的NextResult
- 剑指offer:跳台阶(循环和递归)
- ios-block循环引用简析
- [Objective-C] Objective-C中的id
- 设计模式之Bridge模式(笔记)
- cmd命令重定向输出
- Java流与文件
- Windows.h和Winsock2.h冲突问题
- lua学习--记录(2)
- 125.按规定删除字符