- <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);
}
|
|