用c 實現大數相加

2021-09-29 17:48:45 字數 920 閱讀 2913

題目描述:

輸入:

多行測試資料,每行包含兩個正整數a和b,a和b的範圍不會超過1000位

輸出:

輸出a+b的結果

樣例輸入:

1 1

1000 2000

樣例輸出:

2

3000

1.首先定義兩個字串輸入,再定義兩個陣列,把陣列置零。開始遍歷,把字串逆序儲存到陣列裡面。

比如123+17這樣,逆序存到陣列裡面就是321和71。

2.多定義乙個進製數j,來控制進製。直接按陣列下標進行相加,如果a[i]+b[i]+j>9,這是一種情況,否則是另外一種不進製情況。

比如3+7=10>9這樣,這時候進製等於1,剩餘為0.

3.輸出相加之後的陣列(從後向前輸出),定義乙個變數flag=1,來控制輸出,直到輸出不是0,開始輸出資料。

比如123+17,逆序儲存並相加之後是041,直接從下標為1005(兩數字數都不超過1000)遍歷輸出,直到遍歷到下標為2時(陣列值為1)開始輸出。

#includeusing namespace std;

int main()

else

}flag=1;

for(i=1005;i>=0;i--)//從末尾直到不是0的那一位開始輸出

} cout<} return 0;

}

C 實現大數相加

在c 中,我們經常需要表示整數。但是,c 的基本資料型別中,最大的long也只能表示 9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之間的數。如果我們需要表示更大的數,就需要用到一定的演算法來完成。這次,我給大家分享一下c 的大數運算之加法...

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 ...