zoukankan      html  css  js  c++  java
  • 大整数乘法

    描述

    求两个不超过200位的非负整数的积。

    输入

    有两行,每行是一个不超过200位的非负整数,没有多余的前导0。

    输出

    一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。

    样例输入

    12345678900
    98765432100
    

    样例输出

    1219326311126352690000
    

    提示

    30%的数据,输入的两个整数不超过8位。

    代码

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    const int N=200+10;
    int a[N],b[N],c[N<<1];
    char s[N],ss[N];
    int main()
    {
        cin>>s>>ss;
        int len1=strlen(s);
        int len2=strlen(ss);
        for(int i=0;i<len1;i++)
        {
            a[len1-i]=s[i]-'0';
        }
        for(int i=0;i<len2;i++)
        {
            b[len2-i]=ss[i]-'0';
        }
        int p=0,tot;
        int t=0;
        for(int i=1;i<=len2;i++)
        {
            p=0;
            for(int j=1;j<=len1;j++)
            {
                t=j+i;
                tot=a[j]*b[i]+p+c[t-1];    //模拟理解一下吧
                p=tot/10;
                c[t-1]=tot%10;
            }
            while(p)
            {
                c[t++]=p%10;
                p/=10;
            }
        }
        while(c[t]==0)
        {
            t--;
        }
        for(int i=t;i>=1;i--)
            cout<<c[i];
        return 0;
    
    }
    
  • 相关阅读:
    PHP开发者常犯的MySQL错误
    linux 用户管理
    php中mysql数据库异步查询实现
    PHP 安全相关 简单知识
    js倒计时 网上流传最多的
    TP学习笔记
    Java Map
    Java集合技巧
    Java集合之HashSet/TreeSet原理
    Java Set
  • 原文地址:https://www.cnblogs.com/xxffxx/p/11788272.html
Copyright © 2011-2022 走看看