您的位置:首页 > 其它

基础 递归练习

2017-05-08 13:37 239 查看
1、有一个农场在第一年的时候买了一头刚出生牛,这头牛在第四年的时候就能生一头小牛,以后每年这头牛就会生一头小牛。
这些小牛成长到第四牛又会生小牛,以后每年同样会生一头牛,假设牛不死,如此反复。请问50年后,这个农场会有多少头牛?
首先定义最终终止条件f(4)=1;
然后定义递归公式中f(n)=f(n-1)+f(n-3)。

public class Test {
public static int f(int x){
if(x>0&&x < 4){
return 1;
}else {
return f(x-1)+f(x-3);
}
}
public static void main(String[] args) {
System.out.println(f(50));
}

}

结果:83316385


 

2、有个莲花池里起初有一只莲花,每过一天莲花的数量就会翻一倍。假设莲花永远不凋谢,30天的时候莲花池全部长满了莲花,
请问第23天的莲花占莲花池的几分之几?
首先定义最终终止条件f(30)=1;
然后定义递归公式中f(n)=f(n+1)*0.5。

1 public class Test {
2     public static double f(double x){
3         if(x==30){
4             return 1;
5         }else{
6             return f(x+1)*0.5;
7         }
8     }
9     public static void main(String[] args) {
10             System.out.println(f(23));
11     }
12
13 }


结果:0.0078125
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: