当前位置:首页 > 题库 > 正文内容

7-10 高精度乘法 (10 分)

Luz3个月前 (03-25)题库197
7-10 高精度乘法 (10 分)

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

输入格式:

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

输出格式:

求这两个高精度数的积

输入样例:

5  7

输出样例:

35
作者
严华云
单位
湖州师范学院
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<bits/stdc++.h>
using namespace std;
void cheng(int *n1,int *n2,int *res){
    res[0]=n1[0]+n2[0];
    for(int i=1;i<=n1[0];i++){
        for(int j=1;j<=n2[0];j++){
            res[i+j]+=n1[i]*n2[j];
        }
    }
    for(int i=1;i<=res[0];i++){
        if (res[i]<10)
			continue;
        res[i+1]+=res[i]/10;
        res[i]%=10;
        i==res[0]&&res[0]++; 
    }
}
int main(){
    char str1[1000],str2[1000];
    int n1[1000],n2[1000],res[1000]={0};
    cin>>str1>>str2;
    n1[0]=strlen(str1);
    for(int i=0;str1[i];i++)
        n1[n1[0]-i]=str1[i]-'0';
    n2[0]=strlen(str2);
    for(int i=0;str2[i];i++)
        n2[n2[0]-i]=str2[i]-'0';
    cheng(n1,n2,res);
    for(int i=res[0]; i>1;i--)
        cout<<res[i];
    cout<<endl;   
    return 0;
}


分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。