結構的進階應用--以大數問題為範例

Structure結構的進階應用 --以大數問題為範例

C++的結構(struct)除了用於將已經存在的資料型別組合起來,建立新的資料型別,還可以在結構內加上建構子與函式,建立結構的同時也建立初始化資料型別的建構子,與資料型別所提供功能函式,以可以處理很大正整數(超過long long int範圍的整數)為例子,進行介紹結構的建構子、函式與運算子重載功能介紹。

大數的資料結構 首先要建立可以儲存好幾千位數的正整數,自訂一個資料型別,例如:BigN,BigN資料型別內需要一個整數陣列,假設有1000個元素,整數(int)可以儲存的最大值為2147483647,可以設定資料型別BigN每一億(100000000)進行進位,就可以儲存較長的數字在陣列元素中,比起十進位可以多儲存8倍的數字長度。以一億(100000000)進行進位的意思為若數值超過一億就儲存在陣列第二個元素,不斷以一億為單位進位到下一個元素。

以下是大數的費氏數列程式碼,求費氏數列前200項