| 记录编号 | 
        419298 | 
        评测结果 | 
        AAAAAAAAAAAA | 
    
    
        | 题目名称 | 
        39.增强的乘法问题 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         WHZ0325 | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.002 s  | 
    
    
        | 提交时间 | 
        2017-07-02 15:32:32 | 
        内存使用 | 
        0.38 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include <cstdio>
#include <cstring>
FILE *fin,*fout;
char c[100001]={0};
void mul(char a[],char b[]) {
	int la=strlen(a);
	int lb=strlen(b);
	short int ab[10000]={0};
	for(int i=0;i<la;i++) {
		for(int j=0;j<lb;j++) {
			ab[i+j]+=(a[i]-'0')*(b[j]-'0');
		}
	}
	int carry=0;
	for(int i=la+lb-2;i>=0;i--) {
		carry+=ab[i];
		ab[i]=carry%10;
		carry/=10;
	}
	if(carry) {
		c[0]=carry+'0';
		for(int i=1;i<=la+lb-1;i++) {
			c[i]=ab[i-1]+'0';
		}
	}
	else {
		bool start=true;
		for(int i=0;i<la+lb-1;i++) {
			if(start) {
				if(ab[i]!=0) {
					start=false;
					c[i]=ab[i]+'0';
				}
			}
			else {
				c[i]=ab[i]+'0';
			}
		}
	}
	if(c[0]==0) {
		c[0]='0';
	}
}
int main() {
	fin=fopen("mul.in","rb");
	fout=fopen("mul.out","wb");
	char a[101]={0};
	char b[101]={0};
	fscanf(fin,"%s",a);
	fscanf(fin,"%s",b);
	mul(a,b);
	fprintf(fout,"%s",c);
	fclose(fin);
	fclose(fout);
	return 0;
}