在c#中,我們經常需要表示整數。但是,c#的基本資料型別中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之間的數。
如果我們需要表示更大的數,就需要用到一定的演算法來完成。
這次,我給大家分享一下c##的大數運算之加法。
**只考慮了正數的整數加法。
1using
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.text;
5using
system.threading.tasks;67
namespace821
22static
string twobignumadd(string a, string
b)23
4142
//array集合用於儲存相加的和,所以長度最大也只會比最大的數長度長1,剛開始全部存0
43for (int i = 0; i <= (a.length > b.length ? a.length : b.length); i++)
4447
48//
從低位往高位每位開始相加,如果相加 >=10 則進1取餘
49for (int i = (a.length > b.length ? a.length : b.length) - 1; i >= 0; i--)
5056
57//
如果首位為0,則移除
58if (array[0] == 0)59
6263
//將集合轉換成字串返回
64 stringbuilder result = new
stringbuilder();
65for (int i = 0; i < array.count; i++)
6669
return
result.tostring();70}
71}72 }
用c 實現大數相加
題目描述 輸入 多行測試資料,每行包含兩個正整數a和b,a和b的範圍不會超過1000位 輸出 輸出a b的結果 樣例輸入 1 1 1000 2000樣例輸出 2 30001.首先定義兩個字串輸入,再定義兩個陣列,把陣列置零。開始遍歷,把字串逆序儲存到陣列裡面。比如123 17這樣,逆序存到陣列裡面就...
c語言實現大數相加
文章 兩個大數我們可以用陣列來儲存,然後在陣列中逐位進行相加,再判斷該位相加後是否需要進製,為了方便計算,我們將數字的低位放在陣列的前面,高位放在後面。捕獲.jpg include includeint main n2 10000 int result 10001 t1 10000 t2 10000...
c 大數相加
在實現簡單的加法時,我們大都會採用直接相加輸出結果,但是如果兩個數非常大,已經超出了c 基本資料型別的表示範圍時,該如何解決?c 幾種基本資料型別 int 整型 4位元組 範圍 2147483648 2147483647float 實型 單精度 4位元組 範圍 1.18 10 38 3.40 10 ...