Description

    《Neon Genesis Evangelion》(中文译名:新世纪福音战士,简称EVA)。《EVA》是表面上是一部机器人动画,但是在剧情的展开手法,内容的深度上,使得一经播出就在日本引发“社会现象”程度的回应。其中涉及大量宗家和哲学的内容,复杂的人物精神分析。让《EVA》超出简单动画作品的高度。成为日本动画史上无法超越的动画之一。
    “MAGI System”出自《EVA》,是作品中Nerv组织所使用的大型中央电脑系统。MAGI一词源于圣经,似乎意为东方三贤人,由东方而来朝拜耶稣的三人。该系统由三台分别以东方三贤人命名的独立电脑MELCHIOR 1、BALTHASAR 2、CASPER 3组成,3个独立电脑会独自仲裁事件,最终采用多数通过制决定。Nerv的组织的数据计算和事件决策都是通过MAGI system来负责计算和仲裁的。
    在大型数据计算时,经常涉及高精度运算,比如巨大整数的计算或者高精度的浮点计算。大整数的计算可以通过模拟普通计算的方法来实现。例如:
  123
*  45
-----
  615
 492
-----
 5535
   这里我们用模拟法来实现大整数的乘法运算。

Input

存在多组数据。每行有两个非负整数n,m,以空格隔开,n和m的位数不会超过1000。

Output

给出每一组数据的乘积值,每一组结果为一行。

Sample Input

123 321
123456789 987654321
1 0

Sample Output

39483
121932631112635269
0


 

#include <iostream>
#include <string.h>
#include <string>
using namespace std;
int a[1000]={0},b[1000]={0},lena,lenb;
void multi()
{
    int i,j,c[2001];       //数组c是用来存结果的
    memset(c,0,sizeof(c));
    for(i=0;i<lena;i++)
        for(j=0;j<lenb;j++)
        {
            c[i+j]=c[i+j]+a[i]*b[j];
            c[i+j+1]=c[i+j+1]+c[i+j]/10;
            c[i+j]=c[i+j]%10;
        }
    for(i=lena+lenb;c[i]==0&&i>=0;i--)
        j=i;
    if(j==0)
    {
        cout<<"0"<<endl;
        return;
    }
    else
    {
        for(j=j-1;j>=0;j--)
          cout<<c[j];
        cout<<endl;
        return;
    }
}
int main()
{
    string str1,str2;
    while(cin>>str1>>str2)
    {
        int i,j;
        lena=str1.size();
        lenb=str2.size();
        for(i=lena-1,j=0;i>=0;i--,j++)
            a[j]=str1[i]-'0';
        for(i=lenb-1,j=0;i>=0;i--,j++)
            b[j]=str2[i]-'0';
        multi();
    }
    return 0;
}


posted on 2014-09-23 17:11  星斗万千  阅读(442)  评论(0编辑  收藏  举报