:1、
递归
就是函数自己直接或间接的调用自己。 也就是说最终要回到自己本身。 2、
就递归而言最重要的就是跳出结构. 因为跳出了才可以有结果 也就是说要有个if return语句。也同时就是临界条件。 3、
递归思想就是将一个问题转换为一个已解决的问题来实现 也就是说
假定递归函数已经写好。将最后前后项的关系写出来。最后递归到
(正常情况下就是给定的if结果中)例:1-100:
已解决的问题
function foo( n ) {
if ( n == 1 ) return 1;
return n + foo( n - 1 );
}
例:
Fibonacci 数列: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
求其第 n 项.
function fib( n ) {
if ( n == 0 || n == 1 ) return 1;
return fib( n - 1 ) + fib( n - 2 );
}
## 求幂
求幂就是求 某一个数 几次方
2*2 2 的 平方, 2 的 2 次方
求 n 的 m 次方
最终要得到一个函数 power( n, m )
n 的 m 次方就是 m 个 n 相乘 即 n 乘以 (m-1) 个 n 相乘
function power ( n, m ) {
if ( m == 1 ) return n; if ( m==0 ) return 1;
return power( n, m - 1 ) * n;
}
时间: 2024-12-23 19:32:51