求助!!错第一个点but本地是对的

P1303 A*B Problem

Drunkyous @ 2019-07-17 23:24:37

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char a[2001],b[2001];
    int m[2001],n[2001],p[4001],d,e,f,i,j,x;
    memset(m,0,sizeof(m));
    memset(n,0,sizeof(n));
    memset(p,0,sizeof(p));
    scanf("%s",a);
    scanf("%s",b);
    d=strlen(a);
    e=strlen(b);
    for(i=0;i<=d-1;i++)
      m[d-i]=a[i]-48;
    for(i=0;i<=e-1;i++)
      n[e-i]=b[i]-48;
    for(i=1;i<=d;i++)
    {
        x=0;
        for(j=1;j<=e;j++)
        {
            p[i+j-1]=m[i]*n[j]+x+p[i+j-1];
            x=p[i+j-1]/10;
            p[i+j-1]%=10;
        }
        p[i+e]=x;
    }
    f=d+e;
    if(p[f]==0&&f>1)
      f--;
    for(i=f;i>=1;i--)
      cout<<p[i];
    cout<<endl;
}

by 狄凡人 @ 2019-07-18 07:01:34

我怀疑是位数的问题,你把倒数第六行的if改成while(我怕他数据有前导0)


by Drunkyous @ 2019-07-18 07:10:39

@狄凡人 好的我试试


by Drunkyous @ 2019-07-18 07:11:16

@狄凡人 过了!!谢谢


by 霸炫吊炸天 @ 2019-07-18 07:33:41

a=input() b=input() print(int(a)*int(b)) 贴一下代码


by Drunkyous @ 2019-07-18 21:50:46

@霸炫吊炸天 自带高精


|