这道题目考察的是运用递归(数列)的思路去解决问题。
成都创新互联公司服务项目包括上城网站建设、上城网站制作、上城网页制作以及上城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,上城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到上城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
假设到第24个月,示例代码如下:
public class woo {
public static void main(String args[]) {
System.out.println(fib(24));
}
private static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
}
扩展资料:
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……。
在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
参考资料:
百度百科:斐波那契数列
百度百科:递归函数
这是斐波那契数列的问题
可以用递归,也可以用循环
递归:
public class Demo3 {
// 使用递归方法
private static int getFibo(int i) {
if (i == 1 || i == 2)
return 1;
else
return getFibo(i - 1) + getFibo(i - 2);
}
public static void main(String[] args) {
System.out.println("斐波那契数列的前20项为:");
for (int j = 1; j = 20; j++) {
System.out.print(getFibo(j) + "\t");
if (j % 5 == 0)
System.out.println();
}
}
}
循环:
public class Demo2 {
// 定义数组方法
public static void main(String[] args) {
int arr[] = new int[20];
arr[0] = arr[1] = 1;
for (int i = 2; i arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for (int i = 0; i arr.length; i++) {
if (i % 5 == 0)
System.out.println();
System.out.print(arr[i] + "\t");
}
}
}
20个月后一共6765对兔子。
在700多年前,意大利有一位著名数学家斐波那契在他的《算盘全集》一书中提出了这样一道有趣的兔子繁殖问题。他先用列举法计算出各个月兔子对数,并进行了仔细观察,从中发现了一个十分有趣的规律,就是后面一个月份的兔子总对数,恰好等于前面两个月份兔子总对数的和。
1月兔子等于1对。
2月兔子等于1对。
3月兔子对数等于1月与2月兔子数相加等于2对。
4月兔子对数等于2月与3月兔子数相加等于5对。
后面依次类推。
扩展资料:
递归方法计算兔子繁殖问题:
根据实际问题,设置两个基本事件:rabbit(1)=1和rabbit(2)=1,由此,递归定义式为:
rabbit(n)=1when n=1 or n=2;
rabbit(n)=rabbit(n-1)+rabbit(n-2)when n2;
rabbit(1),rabbit(2),rabbit(3),... ... 称为Fibonacci序列,它是许多自然现象的模型。
rabbit(n)的Java方法:
[java]view plaincopy
publicstaticint rabbit(int n){
//------------------------------------------
//Computes a term in the Fibonacci sequence
//Precondition:n is a positive integer
//Postcondition:Returns the nth Fibonacci number
//------------------------------------------
if(n=2){return1;}
else {//n2, so n-10 and n-20
return rabbit(n-1)+rabbit(n-2);
}//end if
}//end rabbit
参考资料:百度百科-兔子繁衍奥数题及答案
这个是
斐波那契数列
的问题,根据要求编写的
程序
如下:
public
class
Fibonacci
{
static
int
mb_Fibonacci(int
n){
if(n==1)
return
1;
if(n==2)
return
1;
return
mb_Fibonacci(n-1)+mb_Fibonacci(n-2);
}
public
static
void
main(String[]
args)
{
System.out.println(mb_Fibonacci(13));
}
}
运行结果:
233