黑马程序员技术交流社区
标题:
新技能get~这些需求都可以用递归轻松解决
[打印本页]
作者:
sandra_bae
时间:
2015-5-2 20:01
标题:
新技能get~这些需求都可以用递归轻松解决
<div class="blockcode"><blockquote>import java.util.Scanner;
class Recursion
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n = sc.nextInt();
int cowNum = cow(n);
System.out.println(n+"年后,共有母牛"+cowNum+"头。");
}
/*
编程求解:若一头小母牛,从出生起第四个年头开始每年生一头母牛,按次规律,第 n 年时有多少头母牛?
1 1 1 2 3 4 6 9 13 19 28 ... fn=f(n-1)+f(n-3)
1 2 3 4 5 6 7 8 9
*/
public static int cow(int n)
{
if (n<=0)
{
return 0;
}
else if (n<=3)
{
return 1;
}
else
{
return cow(n-1)+cow(n-3);
}
}
}
复制代码
import java.util.Scanner;
class Recursion1
{
/*
数列:1 1 2 3 5 8 13 21
n=(n-1)+(n-2)
需求:用递归的方法得出以上数列的第n个数的值
*/
public static int series(int n) //只能递归到46,到47时运算出负数。
{
if(n==1)
return 1;
else if(n==2)
return 1;
else
return series(n-1)+series(n-2);
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n = sc.nextInt();
int result = series(n);
System.out.println("该数列的第"+n+"个数是:"+result);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2