P2412高精度減法

2022-04-12 03:57:56 字數 1298 閱讀 8204

傳送門

因為忘了帶書回家,所以因為這道題我卡了半小時所以寫篇部落格「紀念」下

高精度減法中,如果被減數比減數小,就要用減數減去被減數。接下來的判斷就是本題的核心。直接用strcmp是不行的,例如100與99,用strcmp就是99大,所以我們還要再看長度。這裡要特別注意一點,下面的**是不行的。

if(strcmp(s,k)>=0||lena>lenb)

所以判斷這裡我們就要分類討論兩次(第一次比較長度,第二次用strcmp)

**如下(原諒蒟蒻的一匹的我**長) 

#include#include

#include

using

namespace

std;

char s[10001],k[10001

];int a[10000001],b[100001],c[10000001

];void j(int,int,int

);void jf(int lena,int lenb,int

lenc)

c[lenc]=a[lenc]-b[lenc];

lenc++;

}while(c[lenc]==0)lenc--;

for(int i=lenc;i>=1;i--)

cout

<}

if(lena==lenb)

c[lenc]=a[lenc]-b[lenc];

lenc++;

}while(c[lenc]==0)lenc--;

for(int i=lenc;i>=1;i--)

cout

<}

else

j(lena,lenb,lenc);

}if(lenaj( lena, lenb, lenc);

}void j(int lena,int lenb,int

lenc)

c[lenc]=b[lenc]-a[lenc];

lenc++;

}while(c[lenc]==0)lenc--;

cout

<<"-"

;

for(int i=lenc;i>=1;i--)

cout

for(int i=0;i<=lenb-1;i++)

b[lenb-i]=k[i]-48

; lenc=1

;if(strcmp(s,k)!=0

)jf(lena,lenb,lenc);

else cout<<"0"

;}

P2142 高精度減法

高精度減法 輸入格式 兩個整數a,b 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入樣例 1 2 1 輸出樣例 1 1 20 資料a,b在long long範圍內 100 資料01 include2 include3 include4 include5 using namespace ...

高精度減法

題目描述 高精度減法 輸入輸出格式 輸入格式 兩個數 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入輸出樣例 輸入樣例 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...