一般情況下,如果涉及到大數問題一般都會採用字元陣列來解決,在使用字元陣列時,需要注意的問題:
1. 首先宣告整數陣列,陣列中的每個元素都當做單獨的數字進行運算.
2. 陣列的初始化,根據計算型別的不同初始化操作也不同
3. 每個陣列元素進行運算完畢後,必須進行進製處理,進製時原有數字與進製(a[i+1] += a[i]/10)相加.
4. 最高位需要記錄,最高位是隨著運算的深入不斷的推進的, 因此需要對最高位加以記錄
5. 整形陣列轉化為字元陣列時,需要對數字進行逆序輸出,同時將整形數字轉化為字元數字。
下面以階乘為例,進行說明:
#include #define maxlen 500
void calcfactorial(int n, char *presult)
/*運算完畢後,需要進製處理*/
for (j=0;j=10)
}/*對最高位進行更新*/
while(p[len]>=10)
}/*整型陣列轉化為字元陣列*/
for (i=0;i<=len;i++)
presult[i] = '\0'; //尾零
}
大數的處理
參考 ac 如下 include include using namespace std 大數相乘 string bigintegerplus string res,string plusn int len1 res.length len2 plusn.length for int i len2 1...
大資料的處理
大資料時代,大家都在從資料中淘金。龐大的資料量隱藏著一些重要的資訊,這些需要被挖掘,來輔助企業制定決策。龐大的資料量如何轉化為有價值的資訊呢?參考hadoop的設計,使用分布式檔案系統hdfs來儲存超大規模的資料集,使用分布式計算框架來處理資料。其中hdfs的設計 是一次寫入,多次讀取。hdfs是如...
對大數的處理
問題 輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到999。解題思路 首先注意n沒有規定範圍,意味著n可以輸入很大的值,那麼這種情況下,無論時用整型還是長整型都會溢位。所以需要考慮大數問題。可以通過字串來解決大數問題。因為數字最大是n位的,需要用乙個n 1長...