提交记录 18085


用户 题目 状态 得分 用时 内存 语言 代码长度
333 1004. 【模板题】高精度乘法 Runtime Error 0 25.081 ms 83808 KB C++ 1.49 KB
提交时间 评测时间
2022-10-08 22:06:54 2022-10-08 22:06:55
#include<iostream>
#include<cstring>
using namespace std;
int aa[501][4000];
int strC[4000]={0};
int m(){
    int strA[4000],strB[4000];
    int lenA=0,lenB=0,lenC=0,i,j,t=0,flagA=1,flagB=1;
    char str[40000],str1[40000];
    cin>>str>>str1;
    for(i=0;i<strlen(str);i++){
        strA[t++]=str[i]-'0';
    }
    lenA=t;
    for(i=0,t=0;i<strlen(str1);i++){
        strB[t++]=str1[i]-'0';
    }
    lenB=t;
    //两数相乘
    for(int i=lenA-1,p=0;i>=0;i--,p++){//都是从个位开始相乘
        for(int j=lenB-1,k=0;j>=0;j--,k++){
            strC[k+p]+=strA[i]*strB[j];
            lenC=k+p+1;
        }
    }
    //进位
    int newLen=0;
    for(int i=0;i<lenC;i++){
        if(strC[i]>=10){
            int n=strC[i];
            strC[i]=n%10;
            n=n/10;
            newLen=i;
            int t=i+1;
            while(n){
                strC[t]+=n%10;
                n=n/10;
                newLen=t;
                t++;
            }
        }
        if(newLen<i) newLen=i;
    }
    return newLen;
}
int main(){
    int n,jg,a[501];
    cin>>n;
    getchar();
    for(int i=0;i<n;i++){
        memset(strC,0,sizeof(strC));
        jg=m();
        cout<<jg<<endl;
        int k=0;
        if(strC[jg]==0){
            aa[i][0]=0;
        }
        else{
            for(int j=jg;j>=0;j--){
                aa[i][k]=strC[j];
                k++;
            }
            a[i]=k-1;
        }
    }
    for(int i=0;i<n;i++){
            for(int j=0;j<=a[i];j++)
                cout<<aa[i][j];
            cout<<endl;
    }

}

CompilationN/AN/ACompile OKScore: N/A

Testcase #125.081 ms81 MB + 864 KBRuntime ErrorScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-16 12:33:43 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠