斐波那契数列求和以及多层嵌套的循环语句应怎样掌握?
- 提问者网友:辞取
- 2021-05-02 22:50
- 五星知识达人网友:春色三分
- 2021-05-02 23:52
費波那西數列(Fibonacci Sequence), 又称为黄金分割数列。
在数学上,費波那西數列是以递归的方法来定义:
- F0 = 0
- F1 = 1
- Fn = Fn - 1 + Fn - 2
如果你想 Java 写出来的话
import java.io.*;
public class fibonacci_recurrence {
public static void main(String[] args) {
// TODO Auto-generated method stub
int fnminus1 = 1; // intitiall num
int fnminus2 = 0; //
int fn;
int n = 20; //
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("input n=0的初始值:");
try
{ //
fnminus2 = Integer.parseInt(br.readLine());
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("input n=1的初始值:");
try
{
fnminus1 = Integer.parseInt(br.readLine());
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("input(n>=2):");
try
{ //
n = Integer.parseInt(br.readLine());
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("第1個num: "+fnminus1);
for(int i = 2; i <= n; i++)
{ //公式 fn = fn-1 + fn-2
fn = fnminus1 + fnminus2;
//出地i個Fibonacci數
System.out.println("第"+i+"num is: " + fn);
// 設置新的fn-2 = fn-1 和 fn-1 = fn
fnminus2 = fnminus1;
fnminus1 = fn;
}
}
}
下面是輸入第0個數為0,第一個數為1,n=20時的結果
輸入:
請輸入n=0的初始值:
0
請輸入n=1的初始值:
1
請輸入n的值(n>=2):
20
輸出:
第0個數為: 0
第1個數為: 1
第2個數為: 1
第3個數為: 2
第4個數為: 3
第5個數為: 5
第6個數為: 8
第7個數為: 13
第8個數為: 21
第9個數為: 34
第10個數為: 55
第11個數為: 89
第12個數為: 144
第13個數為: 233
第14個數為: 377
第15個數為: 610
第16個數為: 987
第17個數為: 1597
第18個數為: 2584
第19個數為: 4181
第20個數為: 6765
下面是輸入第0個數為2,第一個數為3,n=20時的結果
輸入:
請輸入n=0的初始值:
2
請輸入n=1的初始值:
3
請輸入n的值(n>=2):
20
輸出:
第0個數為: 2
第1個數為: 3
第2個數為: 5
第3個數為: 8
第4個數為: 13
第5個數為: 21
第6個數為: 34
第7個數為: 55
第8個數為: 89
第9個數為: 144
第10個數為: 233
第11個數為: 377
第12個數為: 610
第13個數為: 987
第14個數為: 1597
第15個數為: 2584
第16個數為: 4181
第17個數為: 6765
第18個數為: 10946
第19個數為: 17711
第20個數為: 28657
关于算法, 我觉得 GOOGLE 是个不错的地方。!
- 1楼网友:神也偏爱
- 2021-05-03 01:31