| 记录编号 | 
        419296 | 
        评测结果 | 
        AAAAAAAAAAAA | 
    
    
        | 题目名称 | 
        39.增强的乘法问题 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         Ceres | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.002 s  | 
    
    
        | 提交时间 | 
        2017-07-02 15:28:30 | 
        内存使用 | 
        0.39 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include <fstream>
#include <string>
using namespace std;
ifstream ci("mul.in");
ofstream co("mul.out");
string a,b;
int num[3][102],len[3]={0},ans[10002]={0},sum[10002]={0},ma=1,mi=2;
int main()
{
	for(int i=1;i<=101;i++)
		num[1][i]=num[2][i]=0;
	ci>>a>>b;
	for(int i=a.length()-1;i>=0;i--)
		num[1][++len[1]]=a[i]-'0';
	for(int i=b.length()-1;i>=0;i--)
		num[2][++len[2]]=b[i]-'0';
	if(len[1]<len[2])
	{
		ma=2;
		mi=1;
	}
	for(int i=1;i<=len[mi];i++)
	{
		int k=0;
		for(int j=1;j<=len[ma];j++)
		{
			int p=j+i-1;
			sum[p]+=(num[mi][i]*num[ma][j]+k);
			if(sum[p]>9)
			{
				k=sum[p]/10;
				sum[p]%=10;
			}
			else
				k=0;
		}
		if(k)
			sum[len[ma]+i]+=k;
		k=0;
		for(int j=i;j<=len[ma]+i;j++)
		{
			ans[j]+=(sum[j]+k);
			if(ans[j]>9)
			{
				k=1;
				ans[j]%=10;
			}
			else
				k=0;
		}
		for(int j=1;j<=len[ma]+i;j++)
			sum[j]=0;
	}
	int q=len[ma]+len[mi];
	while(!ans[q] && q>1)
		q--;
	for(int i=q;i>0;i--)
		co<<ans[i];
	co<<endl;
	ci.close();
	co.close();
	return 0;
}