11 回答
TA贡献18条经验 获得超19个赞
/** * @author de * */ public class Demo { public static void main(String[] args) { int sum1=1;//定义第一项为1 int sum2=1;//定义第二项为1 for(int i=0;i<10;i++) { //一二项都为1 if(i==0||i==1) { System.out.print(1+","); } //其余的都是前两项的和 else { //前两项的和 int flag=sum1+sum2; //把前一项的值赋给前一项的再前面一项 sum1=sum2; //把当前项赋给前一项 sum2=flag; System.out.print(flag+","); } } } }
TA贡献1条经验 获得超1个赞
典型的递归实现,当n=1或者n=2时结果为function(n)=1,n>2时结果就是function(n)=function(n-1)+function(n-2)
TA贡献1条经验 获得超0个赞
方法1-for循环:
public static int rabbitSeries1(int num){
List<Integer> arr = new ArrayList<Integer>();
if(arr.size()==0){
arr.add(1);
arr.add(1);
}
if(num<=2){
return (int) arr.get(num-1);
}
for(int i=0;i<num-2;i++){
int befTwo = (int)arr.get(i);
int befOne = (int)arr.get(i+1);
arr.add(befTwo+befOne);
}
return (int) arr.get(num-1);
}
方法2-递归:
public static int rabbitSeries2(int num){
List<Integer> arr = new ArrayList<Integer>();
if(arr.size()==0){
arr.add(1);
arr.add(1);
}
if(num<=2){
return (int) arr.get(num-1);
}
int befTwo = rabbitSeries2(num-2);
int befOne = rabbitSeries2(num-1);
arr.add(befTwo+befOne);
return (int) arr.get(num-1);
}
TA贡献29条经验 获得超12个赞
斐波那契数列,可以用递归方法实现 当i>2时 fun(n) = fun(n-1) + fun(n-2) ,用for 循环循环到10就可以实现啦。可以先写出斐波那契方法,然后再去实现 for循环 ,层次看起来会好一些。
TA贡献4条经验 获得超9个赞
function fibonacci(n) { var arr = [1,1]; if (n <= 2) return arr[n-1]; for (var i = 1; i < n-1; i++) { arr.push(arr[i]+arr[i-1]) } console.log(arr) return arr[n-1]; }
添加回答
举报