高精減法 不壓位

2021-10-18 21:59:00 字數 706 閱讀 6857

#include #include int main()

, b[202]=;

scanf("%s%s", a, b);

int alen = strlen(a), blen = strlen(b), t = 0, i;

int a1[202]=, b1[202]=;

for (i = 0; i < alen; i++) a1[i] = a[alen-1-i]-'0';//顛倒並且減去負號0

for (i = 0; i < blen; i++) b1[i] = b[blen-1-i]-'0';//顛倒並且減去負號0

alen = (alen > blen) ? alen : blen; //把大值給 alen

for (i = 0; i <= alen; i++)//模擬豎式 原理和加法一樣,需要不過考慮的不是進製,而是借位。

t = a1[i]-b1[i];

t<0?(t+=10,a1[i+1]--):t;

a1[i] = t;

while (!a1[i] && i) i--;//有的位置可能沒有賦值,也就是為 0,去除他們的干擾 把i的範圍減小

for(; i >= 0; i--) printf("%d", a1[i]);//反著列印出來

return 0;

}

原理和加法一樣,需要不過考慮的不是進製,而是借位。

高精度 高精減法

include include char s1 10100 char s2 10100 int a 10100 int b 10100 int main else int len if l1 l2 len l1 else len l2 for int i 0 i len i a i b i 0 fo...

高進度 減法

減法emmmm,這麼神奇的東西,當然也會被熊孩子們坑一下,200位的減法哈哈哈,同加法,大體思路也一樣,只不過變成了從高位借數,也是陣列加字串模擬,不同的是需要判斷結果的正負 如下 by acer.mo include include includeusing namespace std int m...

emm 關於高精的事 高精加,高精乘,高精減

emm 這一篇主要是用來記錄所有的高精之類的東西的 高精加的難點就是演算法和倒置和去除前導0。直接上 include include includeint main 好的,就大概是這樣了,高精加的精髓在於演算法,一定要理解!高精減的難度就只有它的演算法是精髓,其他的跟高精乘差不多 include i...