zoukankan      html  css  js  c++  java
  • 【CODEVS3117】高精度练习之乘法

    Description

    给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。

    Input

    读入两个用空格隔开的正整数

    Output

    输出A*B的值

    Sample Input

    3 12

    Sample Output

    36

    Hint

    两个正整数的位数不超过500位

    #include<iostream>
    #include<cstring>
    using namespace std;
    char A[510],B[510];
    int a[510],b[510],c[1020];
    int main()
    {
        cin>>A>>B;
        int aLen=strlen(A), bLen=strlen(B);
        for (int i=1;i<=aLen;i++) a[i]=A[aLen-i]-'0';
        for (int i=1;i<=bLen;i++) b[i]=B[bLen-i]-'0';
        int x;
        for (int i=1;i<=aLen;i++)
        {
            x=0;//处理进位 
            for (int j=1;j<=bLen;j++)
            {
                c[i+j-1]=c[i+j-1]+x+a[i]*b[j];
                x=c[i+j-1]/10;
                c[i+j-1]%=10;
            }
            c[bLen+i]=x;
        }
        int cLen=aLen+bLen;
        while (!c[cLen] && cLen>1) cLen--;
        for (int i=cLen;i>=1;i--) cout<<c[i];
    }
  • 相关阅读:
    Animation(三)
    布局
    AutoCommpleteText
    PHP数组中常用函数
    Animation(四)
    转:JAVA内存映射文件
    Ubuntu安装jdk
    转:Java NIO 详解
    转:长连接与短连接
    Direct or Nondirect ByteBuffer
  • 原文地址:https://www.cnblogs.com/liumengyue/p/5192050.html
Copyright © 2011-2022 走看看