求助,为啥RE了...
查看原帖
求助,为啥RE了...
307612
Brunhild楼主2020/7/20 18:01

RT

#include <bits/stdc++.h>
using namespace std;
struct BigInt
{
    static const int M = 1000;
    int num[M + 10], len;
    BigInt() { clean(); }    
    void clean(){
        memset(num, 0, sizeof(num));
        len = 1;
    }
    void read(){
        char str[M + 10];
        scanf("%s", str); 
        len = strlen(str);
        for(int i = 1; i <= len; i++)
            num[i] = str[len - i] - '0';
    }
    void write(){
        for(int i = len; i >= 1; i--)
            printf("%d", num[i]);
    }
	BigInt operator * (const BigInt &A) const{
	    BigInt S;
	    if (num[1]==0||A.num[1]==0) return S;
	       S.len=len+A.len;
	       for (int i=1;i<=A.len;i++){
	           for (int j=1;j<=len;j++){
	           	S.num[i+j-1]+=num[j]*A.num[i];
			   }
		   }
		   for (int i=1;i<=S.len;i++){
		   	if (S.num[i]>=10){
	       	    	S.num[i+1]+=S.num[i]/10;
	       	    	S.num[i]%=10;
				}
		   }
		   if (!S.num[S.len]) S.len--;
		   return S;
    }
};
int main()
{
	BigInt x,y,ans;
	x.read();
	y.read();
	ans=x*y;
	ans.write();
}

前面几个点都过了,就最后一个点RE了...

2020/7/20 18:01
加载中...