60分求助
查看原帖
60分求助
756196
32duyuchen89楼主2023/8/29 10:16
#include<bits/stdc++.h>
using namespace std;
char s[250];
#define int long long
struct INT{
	int a[250],n;
	INT(){
		memset(a,0,sizeof a);
		n=0;
	}
	void check(){
	    while(a[n-1]==0&&n>1) --n;
	    if(n==0){
	    	a[0] = 0;
	    	n=1;
		}
	}
	void print(){
		for(int i = n-1;i>=0;i--)
		printf("%d",a[i]); 
		putchar('\n');
		cout << endl;
	}
};
INT Read(){
	int i = 0;
	INT A;
	scanf("%s",s);
	A.n = strlen(s);
	for(i = 0;i < A.n;i++)
		A.a[i]=s[A.n-i-1]-'0';
	return A; 
}
INT Mul(INT A,INT B){
    INT C;
    C.n = (A.n+B.n);
    for(int i = 0;i < A.n;i++)
    	for(int j = 0;j < B.n;j++){
    		C.a[i+j] += A.a[i]*B.a[j];
			if(C.a[i+j] >= 10){
				C.a[i+j+1] += C.a[i+j]/10;
				C.a[i+j]%=10;
			}		
		}
	if(C.a[C.n] >0)
		C.n++;
	C.check();
	return C;
} 
signed main(){
	INT A,B,C;
	A = Read(),B = Read();
	C = Mul(A,B);
	C.print();
	return 0;
}
2023/8/29 10:16
加载中...