高精度減法(陣列模擬)

2021-08-27 14:11:40 字數 785 閱讀 9708

大整數減法模板如下:

#include #include #include #define size 1001

using namespace std;

bool neg; // 是否為負數

int a[size], b[size], temp[size];

int comp(int a, int b) // 判斷大小,a > / = / < b 的情況下,返回值為 1 / 0 / -1

if (la < lb)

for (i = la; i > 0; --i)

if (a[i] < b[i])

}return 0;

}void _swap(int *a, int *b) // 交換兩個陣列

return;

}void sub(int a, int b) // 高精度減法,a -= b

len = a[0];

for (i = 1; i <= len; ++i) // 按位相減

else

}return;

}void read(int a) // 讀入大整數

while (isdigit(ch))

for (i = 1; i <= a[0]; ++i)

return;

}void write(int a) // 輸出大整數

while (--len)

return;

}int main(int argc, char** argv)

模擬 高精度減法運算

基本思路 高精度減法與高精度加法的步驟基本一樣,都是對齊位數,然後開始減。不過會遇到很多小細節,需要做好 sub a,b 如果ab 減法運算,基本的借位思想要注意 如果a的位數大於b,那麼我這裡會補充前導0給b,從而方便進行對齊位數的減法 輸出結果時,前導0的刪除操作思考如何判斷輸入的字串之間的大小...

高精度減法

題目描述 高精度減法 輸入輸出格式 輸入格式 兩個數 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入輸出樣例 輸入樣例 1 2 1 輸出樣例 1 1說明 這也沒什麼好說的,沒什麼特別的要求,就是乙個普普通通的高精減。程式如下 const max 500 var s integer a,...

高精度減法

description 輸入兩個整數a和b,輸出這兩個整數的差。a和b都不超過100位。input 輸入包括兩行,第一行為乙個非負整數a 被減數 第二行為乙個非負整數b 減數 兩個整數都不超過100位,兩數的最高位都不是0。output 輸出一行,表示a b的值。sample input 99999...