fangyxp 2021-09-26 22:32 采纳率: 100%
浏览 20
已结题

高精乘低精 满分100,我的71,纠个错蟹蟹

代码是这样的:

#include<bits/stdc++.h>
using namespace std;
char sa[10],sb[1010];
int la,lb,lc,jw,f,w,a[10],b[1010],c[102000];
int main()
{
    cin >>sa >>sb;
    la=strlen(sa);
    lb=strlen(sb);
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    for(int i=0;i<la;i++)
        a[la-i-1]=sa[i]-'0';
    for(int i=0;i<lb;i++)
        b[lb-i-1]=sb[i]-'0';
    memset(c,0,sizeof(c));
    jw=0;
    for(int i=0;i<la;i++)
    {
        for(int j=0;j<lb;j++)
        {
            f=a[i]*b[i];
            jw=f/10;
            f%=10;
            w=i+j;
            c[w]+=f;
            c[w+1]+=jw+c[w]/10;
            c[w]%=10;
        }
    }
    lc=la+lb;
    while(c[lc]==0)
        lc--;
    if(lc<0)
        cout<<"0";
    else
        for(int i=lc;i>=0;i--)
            cout<<c[i];
    return 0;
}

(是的没错,我在做高精系列,我又双叒叕来了[捂脸])

错误提示:

输入
1
100000000000000000000000000000000000000000000000000000000000000
输出
0
答案
100000000000000000000000000000000000000000000000000000000000000

输入
9999
100000000000000000000000000000000000000000000000000000000000000
输出
0
答案
999900000000000000000000000000000000000000000000000000000000000000

  • 写回答

1条回答 默认 最新

  • fangyxp 2021-09-26 22:36
    关注

    追问:
    我只是想知道为什么会输出0
    是lc的问题还是其它什么的

    img

    评论

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 创建了问题 9月26日