AcWing 792 高精度減法(C 演算法)

2021-10-07 23:10:35 字數 1266 閱讀 2666

輸入格式

共兩行,每行包含乙個整數。

輸出格式

共一行,包含所求的差。

資料範圍

1≤整數長度≤105

輸入樣例:

3211

輸出樣例:

212、基本思想:

此演算法適用於高精度整數的減法,是將整數的每一位存入乙個陣列,然後遵循「不夠減向前借位補十」的原則,用人工加減的方法求和。

3、步驟:

①用字串輸入,將相加的兩個數a, b每一位拆分倒序(個位在前)存入a,b兩個陣列

②寫乙個函式判斷a,b的大小,若a比b小則引用時交換函式中a,b的位置,在前輸出乙個負號

③利用t來表示每一位相減的得數再+10後對10取餘則完成了不夠減向前借位補十的過程。

④正序輸出結果c

#include

#include

using

namespace std;

vector<

int>

sub(vector<

int>

&a, vector<

int>

&b);

bool

cmp(vector<

int>

&a, vector<

int>

&b);

intmain()

else

return0;

}bool

cmp(vector<

int>

&a, vector<

int>

&b)//比較a,b大小,a>=b返回真,a

//依據每一位的大小比較

return

true

;//相等時返回真

}vector<

int>

sub(vector<

int>

&a, vector<

int>

&b)while

(c.size()

>

1&& c.

back()

==0) c.

pop_back()

;//由於是倒序存入,所以要清空前面的0

return c;

}//該**引用acwing**的**

注意事項(基於高精度加法,重複的注意事項不贅述):

①要多寫乙個函式判斷減數和被減數的大小

②結果是倒序存入,比如225-221=4會輸出004,有多餘的0所以用c.pop_back()把前導0去掉。

acwing 792 高精度減法

給定兩個正整數,計算它們的差,計算結果可能為負數。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的差。資料範圍 1 整數長度 105 10 5 105輸入樣例 3211 輸出樣例 21 include include include using namespace std vecto...

AcWing 792 高精度減法

題目描述 給定兩個正整數,計算它們的差,計算結果可能為負數。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的差。資料範圍 1 整數長度 105 輸入樣例32 11輸出樣例21題目思路 低角標存低位,高角標存高位 依次進製 include include includeusing na...

Acwing 792 高精度減法 模板

給定兩個正整數,計算它們的差,計算結果可能為負數。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的差。資料範圍 1 整數長度 105 輸入樣例 3211 輸出樣例 21 include include using namespace std vector int a,b,c stri...