1,1,2,3,5,8,13,21,34求第30个数是多少(要求使用递归算法)如题,求源码,求各位大大教我~~~~~[最优解释]impo
1,1,2,3,5,8,13,21,34求第30个数是多少(要求使用递归算法) 如题,求源码,求各位大大教我~~~~~[最优解释]
import java.util.ArrayList; public class DefaultClass { public static void main(String[] args) { ArrayList<Integer> result = new ArrayList<Integer>(); result.add(1); result.add(1); addNewValue(result); System.out.println(result); } public static void addNewValue(ArrayList<Integer> array){ if (array.size()<=30) { array.add(array.get(array.size()-1) + array.get(array.size()-2)); addNewValue(array); } } }好吧。。我是来挣分的。。
[其他解释] 你看到了规律了吗!!!就是后一项是前两项的和,递归的话很简单的。。还是建议lz多看一下书吧。。。
[其他解释] f(n)=f(n-1)+f(n-2)算法楼主自己学习去吧 我们写出来 对你不好
[其他解释] 这不是兔子生兔子的那个问题吗?
假设n表示月数,f(n)表示n个月后兔子总数
则 if n==1 or n==2
f(n) =1
else
f(n) = f(n-1)+f(n-2)
我尝试使用java和go,发现使用数组会是个好办法,要不然会运行n次,因为中间会有重复计算的部分
[其他解释] 1+1=2,1+2=3,2+3=5,3+5=8...
[其他解释] 斐波那契数列亲
[其他解释] 顶啊!!!!!!!
[其他解释] 递归很简单:
给你代码,分我收了
public class Text1 { /** * @param args */ public static void main(String[] args) { System.out.println(dg(30)); //第三十个 } public static int dg(int count){ if(count==2 [其他解释] count== 1){ return 1; }else { return dg(count-1)+dg(count-2); } } }[其他解释] 引用: 递归很简单: 给你代码,分我收了 Java code 123456789101112131415161718 public class Text1 { /** * @param args */ public static void main(String[] args) { System.out.println(…… +1
[其他解释] 引用: 递归很简单: 给你代码,分我收了 Java code123456789101112131415161718public class Text1 { /** * @param args */ public static void main(String[] args) { System.out.println(dg(30));…… +1
[其他解释] 5楼可以~~~
------其他解决方案--------------------
引用: 递归很简单: 给你代码,分我收了 Java code? 123456789101112131415161718 public class Text1 { /** * @param args */ public static void main(String[] args) { System.out.println…… ++
[其他解释] 引用: 递归很简单: 给你代码,分我收了 Java code? 123456789101112131415161718 public class Text1 { /** * @param args */ public static void main(String[] args) { System.out.println…… 这个绝对没错
[其他解释] package com;
public class Computing {
/**
* 1,1,2,3,5,8,13,21,34
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] =new int[30];
a[0]=1;
a[1]=1;
for(int i=2;i<30;i++){
a[i]=a[i-1] +a[i-2];
System.out.println("第"+(i+1)+"个数是:"+a[i]);
}
System.out.println("第三十个数是:"+a[29]);
}
}