最近迷上了递归,想深刻理解递归思想,下面是找到几个很不错的函数递归练习题。
有更好的代码可以拿出来一起学习。
(1).请使用递归的方式求出斐波那契数
1,1,2,3,5,8,13.....
给你一个整数n,求出它的值是多
function sum($n){
if($n==1 || $n==2){
return 1;}
else{
return sum($n-1) + sum($n-2);
}
}
echo "斐波那契数为:". sum(8);
(2).已知
f(1)=3;
f(n) = 3*f(n-1)-1;
请使用递归的思想编程,求出 f(n)的值?
function fn($n){
if($n==1){
return 3;
}else{
return 2*(fn($n-1))+1;//
}
}
$a=fn(10);
echo $a;
(3).猴子吃桃问题:
有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!
以后每天猴子都吃其中的一半,然后再多吃一个。
当到第十天时,想再吃时(即还没吃),发现只有1个桃子了。
问题:最初共多少个桃子?
function ct($n){
if($n==10){
return 1;
}else{
return 2*(ct($n+1)+1);
}
}
$a=ct(1);
echo $a;
你要保守你心,胜过保守一切。
作者:刘俊涛的博客