高精度減法和高精度加法同理,都是模擬人在紙上進行的運算。但與高精度加法不同的是,高精度減法在運算前要保證大的數減去小的數,如果輸入的被減數小於減數,則需調換被減數與減數字置並在結果前新增負號。當進行到某一位運算需要借位時,直接將更高一位的數字減一,並用10減去減數的這一位,再加上被減數。
**如下
#include
#include
#include
using
namespace std;
string sub_int
(string _a, string _b)
int delta = a.
length()
- b.
length()
;//在b的前面補上前導零,確保兩數等長
for(
int i =
0; i < delta; i++
) b =
"0"+ b;
//從低位到高位進行減法
for(
int i = a.
length()
-1; i >=
0; i--)}
reverse
(result.
begin()
, result.
end())
;if(minus)
return
"-"+ result;
else
return result;
}int
main()
C 高精度減法模板
高精度減法要注意的是被減數必須必減數大,同時需要處理借位。方法類似於高精度加法。include include include include include include define n 1001 using namespace std int main for i 0 i lena i a ...
C 高精度減法及模板
在資料範圍超過long long 的範圍時,就要考慮到高精度,對於高精度減法而言,本文介紹的兩個數均 0,高精度減法的實質是用 去模擬我們的減法運算,包括借位 正負號種種問題,這裡用vector 來模擬兩個大數相減,先貼 pragma gcc optimize 2 include include i...
C 高精度減法及模板
在資料範圍超過long long 的範圍時,就要考慮到高精度,對於高精度減法而言,本文介紹的兩個數均 0,高精度減法的實質是用 去模擬我們的減法運算,包括借位 正負號種種問題,這裡用vector 來模擬兩個大數相減,先貼 pragma gcc optimize 2 include include i...