听取wa声一片

P1303 A*B Problem

haahaahaa @ 2024-12-14 13:29:33

就对了一个#1求助大佬

#include<bits/stdc++.h>
using namespace std;
long long b[2200],a[2200],l,c[2200];
string s,s1;
int main(){
    cin>>s>>s1;
    if(s=="0"||b==0){
        cout<<0;
        return 0;
    }
    for(int i=0;i<s.size();i++){
        a[i]=s[s.size()-i-1]-'0';
    }
    for(int i=0;i<s1.size();i++){
        b[i]=s1[s1.size()-i-1]-'0';
    }
    for(int i=0;i<s.size();i++){
        c[i]=a[i]*b[i];
    }
    for(int i=0;i<s.size();i++){
        if(c[i]>9){
            c[i+1]+=c[i]/10;
            c[i]%=10;
        }
    }
    l=s.size();
    if(c[l]!=0)l++;
    for(int i=l-1;i>=0;i--){
        cout<<c[i];
    }
}

by XuZile @ 2024-12-14 13:35:43

#include <bits/stdc++.h>
using namespace std;
int a[1000005], b[1000005], c[1000005];
string s1, s2;
int len1, len2, len;
int main(){
    cin >> s1 >> s2;
    len1=s1.length();
    len2=s2.length();
    len=len1+len2;
    for(int i=0;i<len1;i++){
        a[i]=s1[len1-i-1]-'0';
    }
    for(int i=0;i<len2;i++){
        b[i]=s2[len2-i-1]-'0';
    }
    for(int i=0;i<len1;i++){
        for(int j=0;j<len2;j++){
            c[i+j]+=a[i]*b[j];
            c[i+j+1]+=c[i+j]/10;
            c[i+j]%=10;
        }
    }
    while(c[len-1]==0&&len>1){
        len--;
    }
    for(int i=len-1;i>=0;i--){
        cout << c[i];
    }
    return 0;
}

有用的话点个关注吧


by XuZile @ 2024-12-14 13:36:17

@haahaahaa


by XuZile @ 2024-12-14 13:37:24

第一,你的数组开小了

第二。。。。。


by haahaahaa @ 2024-12-14 14:15:38

@XuZile 谢谢大佬QWQ


|