猫史档案馆


高精度乘法

用户:|宸宸||宸宸|查看:2 回复:1 评论:2 创建时间:2024-07-31T15:58:05


1307:【例1.3】高精度乘法
时间限制: 1000 ms         内存限制: 65536 KB 【题目描述】

输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。

【输入】

输入两个高精度正整数M和N。

【输出】

求这两个高精度数的积。

【输入样例】
36
3
【输出样例】
108

 

【代码】:

#include<bits/stdc++.h>
using namespace std;
string a,b;
int aa[205];//乘数
int bb[205];//乘数
int cc[405];//积
int main()
{
    cin>>a>>b;
    for (int i=0;i<a.length();i++){
        aa[a.length()-i]=a[i]-'0';
    }
    for (int i=0;i<b.length();i++){
        bb[b.length()-i]=b[i]-'0';
    }
    for (int i=1;i<=a.length();i++){
        for (int j=1;j<=b.length();j++){
            cc[i+j-1]+=aa[i]*bb[j];
            cc[i+j]+=cc[i+j-1]/10;
            cc[i+j-1]%=10;
        }
    }
    int len=a.length()+b.length();
    if (cc[len]==0){
        len--;
    }
    for (int i=len;i>=1;i--){
        cout<<cc[i];
    }
    return 0;
}

center_image

center_image

有兴趣可以用Python试试。


回复

上一页1 页 / 共 1下一页
lgz1111lgz1111

第一行就报错,没法导入?!

点赞0


评论