w1-4 求两个正整数的乘积

//
//  main.cpp
//  w1-4 求两个正整数的乘积
//
//  Created by 李俊杰 on 2023/2/21.
//

#include <iostream>
#include <string.h>
using namespace std;
int main()
{
    char A[50000],B[50000];//输入数组,char型
    int x=0,y=0;
    int mul[50000],a[50000],b[50000];
    cin>>A>>B;
    x=strlen(A);
    y=strlen(B);
    for(int i=0;i<x;i++) a[x-i-1]+=A[i]-'0';//字符转数字,注意倒序方便处理进位
    for(int i=0;i<y;i++) b[y-1-i]+=B[i]-'0';
    for(int i=0;i<x;i++){//每位相乘
         for(int j=0;j<y;j++){
            mul[i+j]+=a[i]*b[j];//注意是i+j
          }
    }
    int len=x+y-1;//精准位数
    for(int i=0;i<len;i++){//处理进位
            mul[i+1]+=mul[i]/10;
            mul[i]=mul[i]%10;
    }
    if(mul[len]) cout<<mul[len];//特判第一位是否要进位,若要则输入,若不要则不输出
    for(int i=0;i<len;i++){//从后一位开始倒序输出
        cout<<mul[len-i-1];
    }
    return 0;
}

 

 

posted @ 2023-04-19 20:57  lijunjie03  阅读(39)  评论(0)    收藏  举报