代码求调,80pts
  • 板块P1303 A*B Problem
  • 楼主litjohn
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/1/25 21:10
  • 上次更新2024/1/26 06:14:05
查看原帖
代码求调,80pts
537934
litjohn楼主2024/1/25 21:10
#include<bits/stdc++.h>
using namespace std;
constexpr int maxsize=2005;
struct bigint{
    int f = 1,len=1,val[maxsize]={0};
    void output(){
        if (f==-1)putchar('-');
        for (int i = len; i > 0; --i) {
            putchar(val[i]+'0');
        }
    }
    void input(){
        char ch=getchar();
        while (!isdigit(ch)&&ch!='-'){
            ch=getchar();
        }
        if (ch=='-'){
            f=-1;
            ch=getchar();
        }
        string s;
        s.push_back(ch);
        while(isdigit(ch)){
            ch=getchar();
            s.push_back(ch);
        }
        len=s.length()-2;
        for (int i = s.length()-1; i >= 0; i--){
            val[s.length()-i-1]=s[i]-48;
        }
    }
    bigint operator* (const bigint a){
        bigint x;
        if(a.f!=f){
            x.f=-1;
        }
        x.len=a.len+len+1;
        for (int i = 1; i <= a.len+1; ++i) {
            for (int j = 1; j <= len+1; ++j) {
                x.val[i+j-1]+=a.val[i]*val[j];
            }
        }
        for (int i = 1; i < x.len; ++i) {
            x.val[i+1]+=x.val[i]/10;
            x.val[i]%=10;
        }
        while (x.val[x.len]==0&&x.len>1)x.len--;
        return x;
    }
};
int main(){
    bigint a,b;
    a.input(), b.input();
    (a * b).output();
    return 0;
}

最后一个点wa,输入,输出和程序输出如下: | 输入 | 101531212034312135033454561534406280763077512345456153440635546806460794209280763077512034312135033454561534406355478086704577355468064607942092807630775120343121350334545615344063554780867045776870635546806460794209280763077512345456153440635546806460794209280763077512034312135033454561534406355478045773554680646079420928076307751203431213503345456153440635547808670457768706355468064607867045776870635546800343121350334545611015312120343121350334545615344062807630775123454561534406355468064607942092807630775120343121350334545615344063554780867045773554680646079420928076307751203431213503345456153440635547808670457768706355468064607942092807630775123454561534406355468064607942092807630775120343121350334545615344063554780457735546806460794209280763077512034312135033454561534406355478086704577687063554680646078670457768706355468003431213503345456110153121203431213503345456153440628076307751234545615344063554680646079420928076307751203431213503345456153440635547808670457735546806460794209280763077512034312135033454561534406355478086704577687063554680646079420928076307751234545615344063554680646079420928076307751203431213503345456153440635547804577355468064607942092807630775120343121350334545615344063554780867045776870635546806460786704577687063554680034312135033454561 696545465468167657656275465464678617648648678280763077512345456153440635546806460794209280763077512034312135033454561534406355478086704577355468064607942092807630775120343121350334545615344063554780867045776870635542807630775123454561534406355468064607942092807630775120343121350334545615344063554780457768624780457735546806460794209280763077512034312135033454561534406355478086704577687063554680646792957978948924988696545465468167657656275465464678617648648678280763077512345456153440635546806460794209280763077512034312135033454561534406355478086704577355468064607942092807630775120343121350334545615344063554780867045776870635542807630775123454561534406355468064607942092807630775120343121350334545615344063554780457768624780457735546806460794209280763077512034312135033454561534406355478086704577687063554680646792957978948924988696545465468167657656275465464678617648648678280763077512345456153440635546806460794209280763077512034312135033454561534406355478086704577355468064607942092807630775120343121350334545615344063554780867045776870635542807630775123454561534406355468064607942092807630775120343121350334545615344063554780457768624780457735546806460794209280763077512034312135033454561534406355478086704577687063554680646792957978948924988 | | :----------- | :----------- | | 输出 | 70721105345987171769126957422645350653082882889970150475557923371354210623302873346141705044860815851036075142726582237169897279068239782989021474896213163837527625960930004707603092520559738204704017859938549776386175847407440796044487612297682786910723141687578853578108575613827793974006307282279293271044953291370907197844889904100863109260374989544508935673172198924930491825525768119047723666943120242749593891641120999030168438373341937055283539063121844442807058112841401120717166568800397102726112892895865079516083840122705179130670227254880487968270682995642680741721282944210313523821400779268283737839858339390511298526452397558943789854560467714173137085355452824278864306332527498287175951395767313471594754577824226582056395095256457716400231597719941385636785480709184414144026341692239970214264714650727689212728223137571640625872437310183749721325688859448226326907447728369770197090001346294026662181088130461709157996434332407505266104631456674488217450137090045435172822715578113252250093654203867430466820426943794721869703320972012780346555356075497652273865639520356326025187417699527605569415470240361133245489354889747241417385104447367949688903897133875312609010234999120462912219396196584375315375929433162393099689804297531481878594849771957013832288048685611920418947728791944695428076540421330871991693663843823272071705125394327592380392152537317660137010680168965861803503158406808833349199316266634499405219118978586835604483178395589189682646251445941974459829842852330814483191938386996117540068380774165188667301063913466919068255623130443549053388290857839933988812665008148277897619363756781049816385941453947471964573633501534297733697931647875665705748125678497201881457394891884307411950327177465385374467937079435975237022476645385630196257450191764369473496305700919757762373986254213151850068890500048326240696673585842746356152521656255312639531143257635869119043339492677698503346491927658772165655608998796775728636108762429934048133044473933193182499772753735502589036971537158340740912130150222264883344534774912899764357127170367202801283056335943876728863935459636347405555075510791494691883581250804630607880838377624460737671178398165035137911457363217803140053888576219053350712581494173218856681026953930215523152534490503255660900821163251460793024309740492134354089105238764123533599844745604547405165548326759277931134816334867829622125118209145223841071007800250069966433665748163708822329633632074852409991209189613248181252691716693291128336651713020979370312906895470268 | | 我的输出 | 70721105345987171769126957422645350653082882889970150475557923371354210623302873346141705044860815851036075142726582237169897279068239782989021474896213163837527625960930004707603092520559738204704017859938549776386175847407440796044487612297682786910723141687578853578108575613827793974006307282279293271044953291370907197844889904100863109260374989544508935673172198924930491825525768119047723666943120242749593891641120999030168438510354737055283539068107266512811737022463951121944654913954932984104194516738511912785577272880705179130670227254880487968270682995642680741721282944210313523821400779268283737839858339390511298526452397558943789854560467714173137085355452824278864306332527498287175951395767313471594754577824226582056395095256457716400231597719941385636785480709184414144026341692239970214264714650727689212728223137571640625872437310183749721325688859448226326907447728369770197090001346294026662181088130461709157996434332407505266104631456674488217450137090045435172822715578113252250093654203867430466820426943794721869703320972012780346555356075497652273865639520356326025187417699527605569415470240361133245489354889747241417385104447367949688903897133875312609010234999120462912219396196584375315375929433162393099689804297531481878594849771957013832288048685611920418947728791944695428076540421330871991693663843823272071705125394327592380392152537317660137010680168965861803503158406808833349199316266634499405219118978586835604483178395589189682646251445941974459829842852330814483191938386996117540068380774165188667301063913466919068255623130443549053388290857839933988812665008148277897619363756781049816385941453947471964573633501534297733697931647875665705748125678497201881457394891884307411950327177465385374467937079435975237022476645385630196257450191764369473496305700919757762373986254213151850068890500048326240696673585842746356152521656255312639531143257635869119043339492677698503346491927658772165655608998796775728636108762429934048133044473933193182499772753735502589036971537158340740912130150222264883344534774912899764357127170367202801283056335943876728863935459636347405555075510791494691883581250804630607880838377624460737671178398165035137911457363217803140053888576219053350712581494173218856681026953930215523152534490503255660900821163251460793024309740492134354089105238764123533599844745604547405165548326759277931134816334867829622125118209145223841071007800250069966433665748163708822329633632074852409991209189613248181252691716693291128336651713020979370312906895470268 |

2024/1/25 21:10
加载中...