递归例子
公园有200个桃子,猴子每天吃掉10个,挑出2个坏的扔掉,问六天后剩余桃子数量
使用循环做的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
var taozishuliang = 200; for( var i=0;i<6;i++) { taozishuliang=taozishuliang-12; } alert(taozishuliang); var sl=1 for(var i=0;i<6;i++) { sl=(sl+1)*2 } alert(sl); |
公园里有一堆桃子,猴子每天吃掉一半,扔掉一个坏的,第六天发现还剩1个桃子,问原来有多少桃子
使用函数求:函数功能就是返回第n天的桃子数量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
var sl; function Shuliang(n) { //第六天还剩1个桃子 if (n==6) { sl=1; } else { //当求天返回的数量 //当天数量=(下一天的数量+1)*2 sl = (Shuliang(n+1)+1)*2; } return sl; //返回当天的数量 } alert(Shuliang(0)); |
//上面的函数先从第一天函数开始,然后在从第六天往上推算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
Shuliang(0) 190 sl=(shuliang(1)+1)*2 Shuliang(1) 94 sl=(shulaing(1+1)+1)*2 Shuliang(2) 46 sl=(shulaing(2+1)+1)*2 Shuliang(3) 22 sl=(shulaing(3+1)+1)*2 Shuliang(4) 10 sl=(shulaing(4+1)+1)*2 Shuliang(5) 4 sl=(shulaing(5+1)+1)*2 Shuliang(6) sl=1 |