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 }
  • 相关阅读:
    2017年度最具商业价值人工智能公司TOP50 榜单发布
    滑动swipe的妙用
    UE3优化
    UE4 框架
    制作HUD
    Component概念
    手游记事
    C++与UnrealScript脚本交互
    unreal Script(US)一些注意事项
    UDK游戏打包详解
  • 原文地址:https://www.cnblogs.com/jzxnl/p/11031347.html
Copyright © 2011-2022 走看看