递归解决DuckforSale问题
Posted 之墨_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归解决DuckforSale问题相关的知识,希望对你有一定的参考价值。
卖鸭鸭问题
一、递归算法实现
public static int duck(int n){
if(n == 7){
return 2;
}
return (duck(n+1)+1)*2;
}
return ( duck( n + 1) + 1) * 2;
输入一个整数n
,每次递归将n+1
直到n=7
时结束递归
二、输出语句
System.out.println("出发时有"+duck(0)+"只鸭子");
System.out.println("在村子"+i+"卖了"+(duck(i-1)/2+1)+"只鸭子");
duck ( 0 )
由于递归时传入n
后得到n+1
,所以第一次的总数应传入0
(duck( i - 1 ) / 2 + 1)
递归得到的是当天的的鸭子数,所以卖出的鸭子要进行这个运算得到
三、完整代码
public class Duck {
public static void main(String[] args) {
System.out.println("出发时有"+duck(0)+"只鸭子");
for(int i=1;i<8;i++){
System.out.println("在村子"+i+"卖了"+(duck(i-1)/2+1)+"只鸭子");
}
}
public static int duck(int n){
if(n == 7){
return 2;
}
return (duck(n+1)+1)*2;
}
}
以上是关于递归解决DuckforSale问题的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript - 代码片段,Snippets,Gist