仿照豎式減法,先對其,再對應位相減。
演算法處理時,先比較大小,用大的減小的,對應位再比較大小,用於作為借位符。
#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則...