昨天筆試,遇到這麼乙個問題:如果系統要使用超大整數(超過long長度範圍),請你設計乙個資料結構來儲存這種超大型數字以及設計一種演算法來實現超大整數加法運算)。
其實這個問題很好解決,超大整數可以直接使用string來儲存。對於兩個string儲存的超大整數的相加,先比較二者長度,在短的那個前面補0,使兩個string一樣長。然後從尾部開始,挨個取數,相加並進製即可。**如下:
public string numadd(string a,string b)
else
sb=new stringbuilder();
int tempa,tempb,result;
int sc=0;
for(int i=maxlen-1;i>=0;i--)
if(sc==1)
str=sb.reverse().tostring();
return
str;
}
實現超大整數的方法
前幾天做的產品測試,發現內建最大的整數值只有10的9次方,沒有實現超大整數的功能。現在海量計算和海量儲存應用越來越多,而且已經有很多人實現了超大整數的儲存和運算,調查了一些這方面的方法,根本上都是自定義乙個多位元組的資料結構,以便對程式語言的內建int型做擴充套件。自定義結構的方式儘管人人不同,但是...
超大整數相加
輸入 第乙個數字m代表接下來有幾組資料 接下來每一組資料報含兩個資料,數字很大哦 確保沒有字首0,資料很大 輸出輸出計算後的結果,每個結果佔一行 樣例輸入 3123 456 1234567890987654321 9876543210123456789 11111111111111111111111...
兩個超大整數相加 c
昨天面試有個題,時間太緊,來不及寫了,回家除錯一下 函式原型 bool add const char a,const char b,char dest 思路 模擬人工加法的過程,先從末尾開始加。如果存在進製,則標記 include using namespace std bool add const...