題目:給出兩個很大的整數,要求實現程式求出兩個整數之和。
解決思路:
建立兩個整型陣列,陣列長度是較大整數的位數+1。把每乙個整數倒序儲存在陣列中,整數的個位存在陣列下標為0的位置,最高存於陣列的尾部。倒序的目的是為了從左到右訪問陣列的習慣;
建立結果陣列,結果陣列的長度同樣是較大整數的位數+1,+1的目的是給最高位進製預留的;
遍歷兩個陣列,從左到右按照對應下標把元素兩兩相加,相加結果儲存在結果陣列中,需要進製的,把進製的1填到結果陣列的下乙個位置;
把結果陣列的全部元素逆序,去掉首位的0,就是最終的結果。
**實現:
/**
* 大整數相加
* @param bignumbera 大整數a
* @param bignumberb 大整數b
* @return
*/public
static string bignumbersum
(string bignumbera,string bignumberb)
int[
] arrayb=
newint
[maxlength+1]
;for
(int i =
0; i < bignumberb.
length()
; i++
)//2、構建result陣列,陣列長度等於較大整數字數+1
int[
] result=
newint
[maxlength+1]
;//3、遍歷陣列,按位相加
for(
int i =
0; i < result.length; i++
) result[i]
=temp;
}//4、把陣列再次逆序並轉成string
stringbuilder sb=
newstringbuilder()
;//是否找到大整數的最高有效位
boolean findfirst=
false
;for
(int i= result.length-
1;i>=
0;i--
) findfirst=
true;}
sb.(result[i]);
}return sb.
tostring()
;}
大整數相加(C 實現)
求兩個不超過 200200 位的非負整數的和。輸入格式 有兩行,每行是乙個不超過 200200 位的非負整數,可能有多餘的前導 00。輸出格式 一行,即相加後的結果。結果裡不能有多餘的前導 00,即如果結果是 342342,那麼就不能輸出為 03420342。輸出時每行末尾的多餘空格,不影響答案正確...
大整數相加
include include include include 思路如下 將兩個字串分別由低位到高位放置到int陣列中 然後每位對齊相加,大於10,本位取餘,高位進1 char bigintadd const char numstr1,const char numstr2 for i len1 i ...
大整數相加
cpp view plain copy code class cpp include include include include 思路如下 將兩個字串分別由低位到高位放置到int陣列中 然後每位對齊相加,大於10,本位取餘,高位進1 char bigintadd const char numst...