请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]

56

主题

53

回帖

387

积分

Admin

积分
387
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://mxdyeah.top 或 https://www.mxdyeah.top
有问题联系邮箱me@imxd.top
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 21:59 , Processed in 0.235992 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

Built by mxd 2023-07-01 On Fedora WorkStation 38.

Powered by mxdyeah.

Copyright © 2021-2023 mxd Team.

Server:mxd-server-germany 由Openresty驱动.

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