程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 基礎-斐波那契數列 利用循環輸出前40項 (初學者)

基礎-斐波那契數列 利用循環輸出前40項 (初學者)

編輯:編程綜合問答
斐波那契數列 利用循環輸出前40項 (初學者)

我在查了資料之後找到以下解決方法:
#include
  int main()
  {
  long fib[41] = {0,1};
  int i;
  for (i=2;i<41;i++) fib[i] = fib[i-1]+fib[i-2];
  for (i=1;i<41;i++) printf("F%d==%d\n",i,fib[i]);
  getch();
  return 0;
  }

有些看不懂,希望可以幫我詳細分析一下運算過程,或者提供相關的知識點以供研究。
謝謝。

最佳回答:


首先你要知道斐波那契數列的規律也就是0、1、1、2、3、5、8、13、21、……,通過這個就可以知道從第三個元素開始,他的值等於前面兩個元素的和,下面分析代碼

long fib[41] = {0,1}; 定義了一個數組,設置了0 1 坐標元素的值為 0 1

for (i=2;i<41;i++) fib[i] = fib[i-1]+fib[i-2]; 這個循環是沖i等於2開始運算的,也就是數組的第三個元素,fib[i] = fib[i-1]+fib[i-2] 因為斐波那契數列的規律是從第三個元素開始等於前面兩個相加,也就是fib[i-1],fib[i-2]這兩個

for (i=1;i<41;i++) printf("F%d==%d\n",i,fib[i]); 這裡是打印,上面的代碼可以看出,數組第一個和第二個元素沒有參與運算,但long fib[41] = {0,1};這裡已經聲明了,所以第一個第二個元素固定為0、1,第三個開始就是前面兩個相加。

不知道說的詳細不詳細,你明白不明白。

u011703519
u011703519
u011703519
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved