通過C語言陣列解決一些簡單的遞推數學問題

2021-09-21 02:01:20 字數 1653 閱讀 8460

c語言是一種十分適合解決數學問題的程式語言。其中陣列對於解決遞推問題有十分優秀的作用。

陣列:陣列就是變數的集合,是一種指定義變數的方法。

一維陣列:

定義:  型別 陣列[數量];//裡的整數表示變數的數量

int arr[5]《=》int n1,n2,n3,n4,n5;  

陣列的變數,值也是不確定的,為了安全需要初始化。

使用:陣列名[編號];//[ ]裡的整數表示的是編號

arr[0],arr[1],arr[2],arr[3],arr[4];

編號也叫下標,範圍:0~數量-1;

遍歷:配合迴圈語句,使用迴圈變數當做陣列的編號。 

初始化: 型別 陣列[變數]=;

1.如果初始化資料不夠,編譯器會自動補零

2.如果初始化資料過多,編譯器會丟棄多餘的資料並給警告。

3.對陣列初始化時,陣列的數量可以省略,編譯器會統計初始化資料的個數然後再告訴陣列。

二維陣列:把變數排成乙個方陣

定義:型別 陣列名[行數][列數]

int arr[3][4]

使用:陣列名[行編號][列編號] 

編號從零開始。

a[0][0]a[0][1]

a[1][0]a[1][1]

遍歷:配合雙層for,外層負責遍歷行,內層負責遍歷列。

初始化:陣列名[行編號][列編號]={{v0,v1,v2},{v1,v2,v3},{v1,v2,v3}};

以下我用幾個例子表現c語言陣列在數學遞推問題方面的應用。

斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞推的方法定義:f(1)=1,f(2)=1, f(n)=f(n-1)+f(n-2)(n>=3,n∈n*) 。

由此可得,當設陣列a[0]=0,a[1]=1時,定義a[n+1]=a[n-1]+a[n]為規則,則可解決本問題。

**如下:

#include

intmain()

for(

int i=

1;i<=n+

1;i++

)}

執行結果如下:

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡(1623----1662)是在2023年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。楊輝三角是中國古代數學的傑出研究成果之一,它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的結合。

由此規律可得,當設無關陣列元素的值都為0時,楊輝三角形的a[n][n]=a[n-1][n]+a[n-1][n-1]。

則**如下:

#include

intmain()

}a[0]

[1]=

1;for(i=

1;ifor(i=

0;i)printf

("\n");

}}

C語言的一些簡單操作

命令的基本格式 命令名稱 選項 引數 1.基本操作命令 ls 列出某個目錄下的所有檔案 list ls adfhilr h human readable i inode i節點編號,是系統用來區分檔案的標誌 r recursive 遞迴 cd 切換目錄 change directory cd 直接切...

C語言陣列的一些問題

我們都知道,陣列名可以當成乙個指標,同樣的函式名也可以當成乙個函式指標,指向函式的入口位址。現在有乙個問題,陣列名這個指標指向的是什麼呢?如果對陣列名再取位址,得到的又是什麼呢?我們來驗證這兩個問題。輸入以下 include stdio.h int main int p 3 a printf d,d...

c語言字元陣列一些啟示

最近博主在學習 linux系統程式設計 所以想記下來學習的一些心得,與大家分享,也備以後回顧只用。第一天,就從我在今天學習過程遇到的問題寫起,博主今天在學習標準io庫,遇到乙個問題,關於字元指標的問題,如下 1 include2 include3 4 int main 5 15 s 0 16 pri...