zoukankan      html  css  js  c++  java
  • 51NOD 1027 大数乘法

    基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
     
    给出2个大整数A,B,计算A*B的结果。
     
    Input
    第1行:大数A
    第2行:大数B
    (A,B的长度 <= 1000,A,B >= 0)
    Output
    输出A * B
    Input示例
    123456
    234567
    Output示例
    28958703552

    #include <bits/stdc++.h>
    using namespace std;
    #define clear(A) memset(A,0,sizeof(A))
    
    
    int A[1500],B[1500],C[3000];
    char a[1200],b[1200];
    int main()
    {
        while (~scanf("%s %s",a,b) )
        {
            clear(A),clear(B),clear(C);
            int la = strlen(a),lb = strlen(b);
            for(int i=0;i < la;i++)
                A[la-i] = a[i]-'0';
            for(int j=0;j < lb;j++)
                B[lb-j] = b[j]-'0';
            for(int i=1;i <= la;i++)
                for(int j=1;j <= lb;j++)
                    C[i+j-1] += A[i] * B[j];//注意是+=
            for(int i=0; i<2500 ;i++)
                C[i+1] += C[i]/10 , C[i] %=10;
            int i=2500;
            while(C[i] == 0) i--;
            while (i > 0)
            {
                cout<< C[i];
                i--;
            }
            puts("");
        }
        return 0;
    }
    大数乘法
  • 相关阅读:
    spring
    23种设计模式
    get getline
    ping
    Android四大组件
    C++数据结构
    玩转windows便签
    [JavaScript]再谈 this
    [JavaScript]面向对象编程浅析之XJB讲
    [JavaScript]MVC浅析
  • 原文地址:https://www.cnblogs.com/Draymonder/p/7294910.html
Copyright © 2011-2022 走看看