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];
}添加回答
举报
