P1303 A*B Problem

jzy_2020011 @ 2021-09-12 17:54:32

#include <cstdio>
#include <algorithm>
using namespace std;
int a[2000],b[2000],c[2000];
int main()
{
    int i=0;
    char v;
    while(true)
    {
        v=getchar();
        if (v=='\n') break;
        a[i]=v-'0';
        i++;
    }
    int j=0;
    while(true)
    {
        v=getchar();
        if (v=='\n') break;
        b[j]=v-'0';
        j++;
    }
    if (a[0]==0||b[0]==0)
    {
        printf("0");
        return 0;
    }
    for (int nn=0;nn<=j;nn++)
        for (int jj=0;jj<=i;jj++)
            c[nn+jj]+=a[jj]*b[nn];
    int xx=max(i,j);
    for (int q=xx;q>=0;q--)
    {
        if (c[q]>9&&q>0)
        {
            c[q-1]+=c[q]/10;
            c[q]%=10;
        }
    }
    int o=2000;
    while(!c[o--]);
    o++;
    for (int k=0;k<=o;k++)
    {
        printf("%d",c[k]);
    }
//  bool u=0;
//  for (int o=0;o<xx;o++)
//  {
//      if (u||c[o]!=0)
//      {
//          u=1;
//          printf("%d",c[o]);
//      }
//  }
    return 0;
}

by qwq自动机 @ 2021-09-12 17:57:39

这边建议写fft因为好些很多(bushi


by jzy_2020011 @ 2021-09-12 18:31:07

fft是什么


|