C++80分求助

P1303 A*B Problem

xx522 @ 2022-07-23 21:05:33

//eg7.3
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=5005;
int A[MAXN],B[MAXN],Ans[MAXN],Len_A,Len_B,Len_Ans;
void Read(int *A,int &Len)
{
    string cur;
    cin>>cur;
    Len=cur.length();
    for(int i=0;i<Len;i++)A[i]=cur[i]-48;
    reverse(A,A+Len);
}
int main()
{
    Read(A,Len_A);
    Read(B,Len_B);
    Len_Ans=Len_A+Len_B-1;
    for(int i=0;i<Len_A;i++)
        for(int j=0;j<Len_B;j++)
            Ans[i+j]+=A[i]*B[j];
    for(int i=0;i<Len_Ans;i++)
        if(Ans[i]>9)Ans[i+1]+=Ans[i]/10,Ans[i]%=10;
    while(Ans[Len_Ans])Len_Ans++;
    for(int i=Len_Ans-1;i>=0;i--)
        cout<<Ans[i];
    return 0;
}

by wangyizhi @ 2022-07-23 21:09:33

@xx522 貌似有一个测试点是0


by tommyfj @ 2022-07-23 21:11:18

@xx522 要不用python解吧


by xx522 @ 2022-07-23 21:29:38

@wangyizhi 什么意思?qwq


by xx522 @ 2022-07-23 21:30:33

@tommyfj python我不会


by tommyfj @ 2022-07-23 22:01:59

@xx522 放心,说一下输入输出就行了,

输入 :
变量名 = 数据类型(input())
例如:a = int(input())

输出:print(内容)
例如:print(1 + 2)

推荐食用:菜鸟教程


by ravenfield @ 2022-07-27 14:33:06

a=input() b=input() print(int(a)*int(b)) Python极简代码


by ravenfield @ 2022-07-27 14:33:57

a=input()换行 b=input() 换行 print(int(a)*int(b))


by zhizhi_c @ 2022-09-17 10:13:07

@xx522 好像有个测试点一个因数是0 应在

while(Ans[Len_Ans])Len_Ans++;
for(int i=Len_Ans-1;i>=0;i--)
        cout<<Ans[i];

之间加

while(!Ans[Len_Ans-1] && Len_Ans>1) Len_Ans--;

改为

while(Ans[Len_Ans])Len_Ans++;
while(!Ans[Len_Ans-1] && Len_Ans>1) Len_Ans--;
for(int i=Len_Ans-1;i>=0;i--)
        cout<<Ans[i];

可能可以AC。


|