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];
}添加回答
舉報
