今天我们来了解一下青蛙跳台阶的概念。
在了解青蛙跳台阶之前,我们先了解一下递归的概念,程序调用自身的编程技巧称为递归,递归作为一种算法在程序色设计语言中广泛应用,一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。递归的主要思考方式在于:把大事化小。
递归的两个必要条件:
1.存在限制条件,当满足这个限制条件的时候,递归便不在继续。
2.每次递归调用之后越来越接近这个限制条件。
递归的实现:
我们用一个例子来说明:接受一个整形值(无符号),按照顺序打印它的每一位。
例如: 输入 1234 输出:1 2 3 4
注意:%d 是打印有符号的整数, %u是打印无符号的整数。
可以把print(1234)转换成(123)4 转换成(12) 3 4 转换成 (1) 2 3 4 ,那这些数字可以怎们得到呢?1234%10 可以把个位得到, 1234/10 可以把除了个位的其他位得到。
接下来我们使用函数递归,函数递归就是自己调用自己。
递归满足先递后归,函数先自己调用自己,调用结束的时候才开始打印。当不满足限制条件的时候开始打印结果。 当了解递归的概念之后,我们接下来讲述斐波那契数列:
1 1 2 3 5 8 13 21 34 55 ... n(第一,第二个数没有斐波那契数列,后面的数等于前面两个数之和。)封装一个斐波那契数列的函数为 Fib(n), 当 n<=2 时,Fib(n) 的值是 1
,当 n >2 时 Fib(n) = Fib(n-1) + Fib(n-1),这就是斐波那契数列的基本概念。接下来给出代码。
青蛙跳台阶,一次只能跳一个或者两个台阶
当 台阶(n) = 1时,只能跳一次台阶 ,有一种方法
当台阶(n)= 2 时,可以选择一次跳两个台阶或者两次跳一个台阶 ,有两种方法
当台阶(n)> 2 时,假设 n = 10;当青蛙第一次走 1 个台阶,还剩下 9 个台阶。(fib(9))种走法。
当青蛙第一次走 2 个台阶的时候,还剩下 8 个台阶。 (fib(8))种走法。
所以(fib(10))种走法 = (fib(9))+ fib((8))
总结:这样我们就可以得到如果是 n 个台阶的写法就是。
n = 1; 1种走法
n = 2; 2种走法
n > 2 fib(n) = fib(n-1) +fib(n-2)种写法
封装一个函数叫做 fib(n) 表示的意思是计算走 n 个台阶有多少种走法
今天的分享到这里就结束了,学艺不精,敬请谅解,如有错误,请及时指出,不吝赐教,回见。