基礎演算法 高精度計算 高精度加法

2021-08-18 16:42:18 字數 641 閱讀 6751

輸入兩個數到兩個變數中,然後用賦值語句求他們的和,輸出。

但是,我們知道,在c++中任何資料型別都有一定表示範圍。當兩個被加數很大時,上述演算法顯然不能求出精確解,因此尋求另外一種方法。

在讀小學時,我們做加法都採用豎式方法,這樣,我們可以寫出兩個整數相加的演算法。

我們用陣列a、b分別儲存加數和被加數,用陣列c儲存結果。則上例有a[3]=8,a[2]=5,a[1]=6;b[3]=2,b[2]=5,b[1]=5;c[4]=1,c[3]=1,b[2]=1,b[1]=1。兩數相加如圖所示。

因此,演算法描述如下。

/*a、b、c均為陣列,儲存被加數、加數、結果*/

int c[100];

void add(int a,int b)

}

#include#include#includeusing namespace std;

int main()

高精度演算法 791 高精度加法

給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整數長度 100000 輸入樣例 1223 輸出樣例 35注意點 1.兩個整數較大,用字串來存,這樣的話,可以呼叫它的size 方法 2.將兩個大的整數,存入vector陣列中,最好把整數...

階乘計算(高精度)

基礎練習 階乘計算 時間限制 1.0s 記憶體限制 512.0mb 問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列a來表示乙個大整數a,a 0 表示a的個位,a 1 表示a的十位,依次類...

階乘計算(高精度)

問題描述 輸入乙個正整數 n,輸出 n 的值。其中 n 1 2 3 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。使用乙個陣列 a來表示乙個大整數 a,a 0 表示 a的個位,a 1 表示 a的十位,依次類推。將 a乘以乙個整數 k變為將陣列 a的每乙個元素都...