找回密码
 立即注册
查看: 368|回复: 0

#1227. 高精度求积(multiply) 题解

[复制链接]

67

主题

89

回帖

8514

积分

Admin

积分
8514
QQ
发表于 2024-2-1 14:02:47 | 显示全部楼层 |阅读模式
原题链接

题目描述
输入两个高精度正整数 M 和 N(M 和 N 均小于 100 位)。
求这两个高精度数的积。
输入
两个数字,中间用空格隔开   
输出
一个数字,不要带有任何空格或字母   
样例输入

    36 3

样例输出

    108
题解

  1. #include <cmath>
  2. #include <cstdio>
  3. #include <cstring>        
  4. #include <iostream>
  5. using namespace std;
  6. int a[10000];
  7. string s1,s2;
  8. void addd()
  9. {
  10.         int a1=s1.size(),a2=s2.size();
  11.         for (int i=0;i<a1;i++)
  12.           for (int j=0;j<a2;j++)
  13.             a[a1-i+a2-j-1]+=(s1[i]-'0')*(s2[j]-'0');
  14.         for (int i=1;i<=a1+a2;i++) { a[i+1]+=a[i]/10; a[i]%=10; }
  15.         a[0]=a1+a2; while (a[a[0]]==0&&a[0]>1) a[0]--;
  16.         }

  17. int main()
  18. {
  19.     getline(cin,s1);
  20.     getline(cin,s2);
  21.     memset(a,0,sizeof(a));
  22.     addd();
  23.     for (int i=a[0];i>=1;i--) cout<<a[i];
  24.     cout<<endl;
  25.         return 0;
  26. }

复制代码




本网站创始人
主页https://www.mxdyeah.top
有问题联系邮箱feedback#mxdyeah.top(#换@)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Open Community |网站地图

GMT+8, 2024-11-23 17:29 , Processed in 0.175956 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表