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

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

[复制链接]
  • TA的每日心情
    擦汗
    前天 22:48
  • 签到天数: 2 天

    [LV.1]初来乍到

    74

    主题

    92

    回帖

    6130

    积分

    Admin

    积分
    6130
    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, 2025-1-31 07:58 , Processed in 0.302829 second(s), 27 queries .

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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