高精度減法 C

2022-06-06 15:15:09 字數 1185 閱讀 4280

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

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

#include #include #define maxsize 20

#define maxoutsize maxsize + 2

using namespace std;

int main()

, 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--)

}return 0;

}

高精度減法 C

仿照豎式減法,先對其,再對應位相減。演算法處理時,先比較大小,用大的減小的,對應位再比較大小,用於作為借位符。include include define maxsize 20 define maxoutsize maxsize 2 using namespace std intmain b max...

高精度減法(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則...