社区讨论
90分求助
P2142高精度减法参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lww922ng
- 此快照首次捕获于
- 2024/06/01 23:10 2 年前
- 此快照最后确认于
- 2024/06/02 10:30 2 年前
测试点6过不了,把数据下载下来自己测试也没发现问题
CPP#include<iostream>
#include<string>
using namespace std;
void swap(char& a,char& b)
{
char t=a;
a=b;
b=t;
return;
}
//高精度整数减法
string HighMinus(string a,string b)
{
int lena=a.size(),lenb=b.size();
if(lena<lenb) return "-"+HighMinus(b,a);
else if(lena==lenb)
{
if(a<b) return "-"+HighMinus(b,a);
}
for(int i=0;i<lena/2;i++) swap(a[i],a[lena-i-1]);
for(int i=0;i<lenb/2;i++) swap(b[i],b[lenb-i-1]);
string c;
int tuiwei=0,point=0;
while(tuiwei>0||point<max(lena,lenb))
{
int x=(point<lena?(a[point]-'0'):0);
int y=(point<lenb?(b[point]-'0'):0);
int t=(x-y-tuiwei)%10;
if(t>=0) c+=t+'0';
else c+=10+t+'0';
tuiwei=((x-y-tuiwei)<0?1:0);
point++;
}
int lenc=c.size();
for(int i=0;i<lenc/2;i++) swap(c[i],c[lenc-i-1]);
int i;
for(i=0;c[i]=='0';i++);
if(i==c.size()) return "0";
c.erase(0,i);
return c;
}
int main()
{
freopen("P2142_6.in","r",stdin);
string a,b;
cin>>a>>b;
// cout<<-2%5<<endl;
cout<<HighMinus(a,b)<<endl;
return 0;
}
测试点6:
输入:
CPP899205246387481840144174944294660205560708802694009828550016029767434592200915262066578034391444402185991912770576501474326182419812198445092883572695581887056696453471253087848715021715079321269289705085668064901011687816751141038581370225147021908965953309104628583020726994496613226753912892346145538787238691777221270769984829129322391478036259132396374848908279044856648299340801815194320634362478281002350717529519621924928288392287822103070230109556575524578436174416549535122682089876206916939759353236003124857985646387409504977966756767846797577007444073891174703107315192168900434581868334092043926322961893591328241189210798693043015556956964677671604983185999419450828005615847332444802981759515062964151279993603041969603095509583200611451067452611270966289457924852962858613397040864950316688978235162391920966153666678805685933350125346225113229031050985192792758934709996312517009082029661036879213535207573819332177214696609701734407122203851108525041859125603158995855222693921587435836991966292993569676610958294189213259339481658028219695780230184658324897317728599687353605768843146688922733503992957054744079294409203511581856991639978981273591130436247885835247643498734308129919908646585110393788355828991955908222007856767007361093855424419753424570429570664265579103276133630898787793993421578096165363743807382404799650101340573189045130851488297275995221696994751089894403308375689600864203174954212611893091445579314435329728058609705363192352217959950667442144466692605267407185925340184447422266887481984448754325139295572321734619535799757501665419965755282555129240323932476271193819587776920050511481189834211106869963987099944919178714091837053180468340877392481530807894224613541558579574593283432345243215747839440793711721595667194464240587637961628137931119215264452753427950360242158025669761494084184585732126307257599514316628653387204514588216953134481490065077386853174683448077553621634438859323790115420729470079126513870893327253065269418693879062417980916134167724556925040350399373880084841330619448760210505196726098387065298178331053401319693608102503670149434375870251764647248421009793117279972315153378336671156203974137464665880488365320204256647101292380140716892818906603508266801136998970271414906038658938683170588956673415057582457619755039974197170979676809245700530287431116007557720000166590812518578549755545120769012678747967051108604171244715055041137021949641959676515749098959262853427476055672634962158662623785502988787652315427335986104467747514131108232152490780266999145578836025759557984602248855351747133824822539200372276032094121428244470483702727309553820172408727152061350151134062641849420706693754240970954925911232223148014886145004457313414871677234697705667525977652127627033875340787935154883909333877691846937803731434161766074823584122854553691104229056219183995633041444736450301323155942704418143894385470560033480865551163971856248249810312169808651275044489336175144800421913843756355231239647543370825251704554655501478350050871110696232601141055521773360989412298309147086356171156329523668790454130902733686788999964524512935483813183631812131539174436086954424752537339744312513866557594883573319679604031020245337193648129646713313768507095671086823207227441126150880054690233959032295555638725901574192200618711316717796054814807241481624329044163715769413059128416284735674054483650558676006349345246701858366227867815743104803040124216043018420763924701585657655808296047058474413027639307896515204771886685786128879983230926956867118658399511636830019617116612118628245919360082488826415618535346482221208121424593306544506420573230712255804957223939539842292386069467930134607494654273707337276819412669017254801160586048081611003622604489004550393683522060733125505307977346297365375398359591086939467815440443334767095548334581192670341921491
899205246387481840144174944294660205560708802694009828550016029767434592200915262066578034391444402185991912770576501474326182419812198445092883572695581887056696453471253087848715021715079321269289705085668064901011687816751141038581370225147021908965953309104628583020726994496613226753912892346145538787238691777221270769984829129322391478036259132396374848908279044856648299340801815194320634362478281002350717529519621924928288392287822103070230109556575524578436174416549535122682089876206916939759353236003124857985646387409504977966756767846797577007444073891174703107315192168900434581868334092043926322961893591328241189210798693043015556956964677671604983185999419450828005615847332444802981759515062964151279993603041969603095509583200611451067452611270966289457924852962858613397040864950316688978235162391920966153666678805685933350125346225113229031050985192792758934709996312517009082029661036879213535207573819332177214696609701734407122203851108525041859125603158995855222693921587435836991966292993569676610958294189213259339481658028219695780230184658324897317728599687353605768843146688922733503992957054744079294409203511581856991639978981273591130436247885835247643498734308129919908646585110393788355828991955908222007856767007361093855424419753424570429570664265579103276133630898787793993421578096165363743807382404799650101340573189045130851488297275995221696994751089894403308375689600864203174954212611893091445579314435329728058609705363192352217959950667442144466692605267407185925340184447422266887481984448754325139295572321734619535799757501665419965755282555129240323932476271193819587776920050511481189834211106869963987099944919178714091837053180468340877392481530807894224613541558579574593283432345243215747839440793711721595667194464240587637961628137931119215264452753427950360242158025669761494084184585732126307257599514316628653387204514588216953134481490065077386853174683448077553621634438859323790115420729470079126513870893327253065269418693879062417980916134167724556925040350399373880084841330619448760210505196726098387065298178331053401319693608102503670149434375870251764647248421009793117279972315153378336671156203974137464665880488365320204256647101292380140716892818906603508266801136998970271414906038658938683170588956673415057582457619755039974197170979676809245700530287431116007557720000166590812518578549755545120769012678747967051108604171244715055041137021949641959676515749098959262853427476055672634962158662623785502988787652315427335986104467747514131108232152490780266999145578836025759557984602248855351747133824822539200372276032094121428244470483702727309553820172408727152061350151134062641849420706693754240970954925911232223148014886145004457313414871677234697705667525977652127627033875340787935154883909333877691846937803731434161766074823584122854553691104229056219183995633041444736450301323155942704418143894385470560033480865551163971856248249810312169808651275044489336175144800421913843756355231239647543370825251704554655501478350050871110696232601141055521773360989412298309147086356171156329523668790454130902733686788999964524512935483813183631812131539174436086954424752537339744312513866557594883573319679604031020245337193648129646713313768507095671086823207227441126150880054690233959032295555638725901574192200618711316717796054814807241481624329044163715769413059128416284735674054483650558676006349345246701858366227867815743104803040124216043018420763924701585657655808296047058474413027639307896515204771886685786128879983230926956867118658399511636830019617116612118628245919360082488826415618535346482221208121424593306544506420573230712255804957223939539842292386069467930134607494654273707337276819412669017254801160586048081611003622604489004550393683522060733125505307977346297365375398359591086939467815440443334767095548334581192670341921491
输出:
CPP0
回复
共 2 条回复,欢迎继续交流。
正在加载回复...