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

    传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1174

    【题目描述】

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

    【输入】

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

    【输出】

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

    【输入样例】

    12345678900
    98765432100
    

    【输出样例】

    1219326311126352690000



    和高精加一样的存储。用竖式算

     1 #include<iostream>
     2 #include<cstring>
     3 #define N 410
     4 using namespace std;
     5 string a,b;
     6 int as[N],bs[N],cs[N],len;
     7 int main(){
     8     cin>>a>>b;
     9     for(int i=0;i<a.size();i++)as[i]=a[a.size()-i-1]-'0';
    10     for(int i=0;i<b.size();i++)bs[i]=b[b.size()-i-1]-'0';
    11     len=a.size()+b.size();
    12     for(int i=0;i<a.size();i++)
    13         for(int j=0;j<b.size();j++)
    14             cs[i+j]+=as[i]*bs[j];
    15     for(int i=0;i<len;i++)
    16         if(cs[i]>9){
    17             cs[i+1]+=cs[i]/10;
    18             cs[i]%=10;
    19             if(i==len-1)len++;
    20         }
    21     while(len&&cs[len]==0)len--;
    22     for(int i=len;i>=0;i--)cout<<cs[i];
    23     cout<<endl;
    24 }
  • 相关阅读:
    16. 3Sum Closest
    17. Letter Combinations of a Phone Number
    20. Valid Parentheses
    77. Combinations
    80. Remove Duplicates from Sorted Array II
    82. Remove Duplicates from Sorted List II
    88. Merge Sorted Array
    257. Binary Tree Paths
    225. Implement Stack using Queues
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/jzxnl/p/11031347.html
Copyright © 2011-2022 走看看