說明:基於記憶體的有效運用,程式語言中規定了各種不同的資料型態,也因此變數所可以表達的最大整數受到限制,例如123456789123456789這樣的 整數就不可能儲存在long變數中(例 如c/c++等) ,我們稱這為long數,這邊翻為超長整數(避免與資料型態的長整數翻譯混淆)或,俗稱大數運算。
解法:乙個變數無法表示超長整數,則就使用多個變數,當然這使用陣列最為方便,假設程式
語言的最大資料型態可以儲存至65535的數好了, 為了計算方便及符合使用十進位制的習慣,讓 每乙個陣列元素可以儲存四個位數,也就是0到9999的數,例如:
很多人問到如何計算像50!這樣的問題,解法就是使用程式中的乘法函式,至於要算到多大,就 看需求了。
由於使用陣列來儲存數值,關於數值在運算時的加減乘除等各種運算、位數的進製或借位就必 須自行定義,加、減、乘都是由低位數開始運算,而除法則是由高位數開始運算,這邊直接提 供加減乘除運算的函式供作參考,以下的n為陣列長度。
************************************程式片段********************************
void add(int *a,int*b,int *c)}}
void sub(int *a,int*b,int *c)}}
void mul(int *a,int b,int *c)
}void div(int *a,int b,int *c)
}***************************************end***************************
超長整數運算(大數運算)
說明基於記憶體的有效運用,程式語言中規定了各種不同的資料型態,也因此變數所可以表達的最大整數受到限制,例如123456789123456789這樣的整數就不可能儲存在long變數中 例如c c 等 我們稱這為long數,或俗稱大數運算。解法乙個變數無法表示超長整數,則就使用多個變數,當然這使用陣列最...
超長整數運算(大數運算)
說明 基於記憶體的有效運用,程式語言中規定了各種不同的資料型態,也因此變數所可以表 達的最大整數受到限制,例如123456789123456789這樣的 整數就不可能儲存在long變數中 例 如c c 等 我們稱這為long數,這邊翻為超長整數 避免與資料型態的長整數翻譯混淆 或 俗稱大數運算。解法...
超長整數運算(大整數運算)
問題描述 將形如1234567890123456789不能儲存在long變數中的數稱為超長整數或大整數。現討論大整數的加減乘除運算。思想方法 用陣列儲存超長整數,且為處理的簡單起見約定每個元素存放相同位的數字。如 每個元素存放4位。1 加法運算 void add int a,int b,int c ...