仿照豎式減法,先對其,再對應位相減。
演算法處理時,先比較大小,用大的減小的,對應位再比較大小,用於作為借位符。
#include
#include
#define maxsize 20
#define maxoutsize maxsize + 2
using namespace std;
intmain()
, b[maxsize]=,
c[maxoutsize]=,
t[maxsize]=;
int a_int[maxsize]=,
b_int[maxsize]=,
c_int[maxoutsize]=;
cin >> a;
cin >> b;
memset
(a_int,0,
sizeof a_int)
;memset
(b_int,0,
sizeof b_int)
;memset
(c_int,0,
sizeof c_int)
;//考慮是否交換,大數減小數
bool minus = false;if(
(strlen
(a)<
strlen
(b))||(
strcmp
(a, b)
<0)
)if(minus)
int len_a =
strlen
(a), len_b =
strlen
(b);
//對齊
for(
int i = len_a -
1, j =
0; i >=
0; i--
, j++
)for
(int i = len_b -
1, j =
0; i >=
0; i--
, j++
)//對應位相減
for(
int i =
0; i < maxsize; i++
) c_int[i]
= a_int[i]
- b_int[i];}
int ans_len =0;
for(
int i =
0; i < maxoutsize -
1; i++
)while
(c_int[ans_len]==0
)if(ans_len <0)
for(
int i = ans_len; i >=
0; i--
)for
(int i = maxoutsize -
1; i >=
0; i--)}
return0;
}
高精度減法(c )
每當要進行精度較高的運算時,就要用到高精度。下圖是各個型別的數值範圍 如果想不起各個型別佔多少位元組,可以採用下面的方法 printf d d sizeof int sizeof long long 格式為 sizeof 資料型別 可以把值賦值給乙個變數,也可以直接輸出 好了,回到正點。我們先看例題...
高精度減法 c
兩個整數 a,b 第二個可能比第乙個大 結果 是負數要輸出負號 常規思路,不花裡胡哨,通俗易懂。else m 0不用借位 lenb lena while lena 1 因為a字元陣列長度始終不小於b字元陣列長度,所以lenb到0時lena還可能沒到0,此後處理的是a比b高出的位,例如1299 20則...
高精度減法 C
仿照豎式減法,先對其,再對應位相減。演算法處理時,先比較大小,用大的減小的,對應位再比較大小,用於作為借位符。include include define maxsize 20 define maxoutsize maxsize 2 using namespace std int main b ma...