高精度減法 C

2021-08-28 05:06:14 字數 1457 閱讀 6644

仿照豎式減法,先對其,再對應位相減。

演算法處理時,先比較大小,用大的減小的,對應位再比較大小,用於作為借位符。

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