递归程序设计的简单理解
时间:2010-10-20 来源:般若随风
最经典的兔子问题: 斐波纳契数列
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
关系式为 a(n) = a(n-1)+a(n-2)
递归法求解为
function tuzi($n){
if($n<=1){
return 1;
}
return (tuzi($n-1)+tuzi($n-2));
}
if($n<=0){
return 0;
}
return $n + add_num($n-1);
}
if($n<=0){
return $max;
}
if($arr[$n]>$max){
$max = $arr[$n];
}
return array_max($arr,$n-1,$max);
}
function tuzi($n){
if($n<=1){
return 1;
}
return (tuzi($n-1)+tuzi($n-2));
}
求整数的和 (1~100)
function add_num($n){if($n<=0){
return 0;
}
return $n + add_num($n-1);
}
求数组中最大值问题(这个跟循环求解基本一样)
function array_max($arr,$n,$max){if($n<=0){
return $max;
}
if($arr[$n]>$max){
$max = $arr[$n];
}
return array_max($arr,$n-1,$max);
}
相关阅读 更多 +