莫名其妙60分
  • 板块P1303 A*B Problem
  • 楼主lyk1227
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/2/5 20:42
  • 上次更新2025/2/6 09:10:13
查看原帖
莫名其妙60分
1472701
lyk1227楼主2025/2/5 20:42

各位dalao救救蒟蒻吧

RE两点

cpp
#include<bits/stdc++.h>
using namespace std;
const int maxN=105;
struct Bint{
	int n;
	char s[maxN];
	Bint(){}
	Bint(long long x){
		n=0;
		while(x){
			s[n++]=x%10+'0';
			x/=10;
		}
		if(!n)s[n++]='0';
	}
	Bint(char x[]){
		n=strlen(x);
		for(int i=0;i<n;i++)s[i]=x[n-1-i];
	}
};
istream& operator >> (istream& in,Bint& A){
	in>>A.s;
	A.n=strlen(A.s);
	for(int i=0,j=A.n-1;i < j;i++,j--)swap(A.s[i], A.s[j]);
	return in;
}
ostream& operator << (ostream& out, Bint A){
	for(int i=A.n-1;i>=0;i--)out<<A.s[i];
	return out; 
}
bool operator <= (Bint A,Bint B){
	if(A.n!=B.n)return A.n<B.n;
	for(int i=A.n-1;i>=0;i--)if(A.s[i]!=B.s[i])return A.s[i]<B.s[i];
	return true;
}
Bint operator * (Bint A,Bint B){
	Bint C;
	C.n=A.n+B.n;
	int X[maxN]={};
	for(int i=0;i<A.n;i++)for(int j=0;j<B.n;j++)X[i+j]+=(A.s[i]-'0')*(B.s[j]-'0');
	for(int i=0;i<C.n;i++){
		X[i+1]+=X[i]/10;
		C.s[i]=X[i]%10+'0';
	}
	while(C.n>1&&C.s[C.n-1]=='0')C.s[--C.n]=0;
	return C;
}
int main(){
	Bint A,B;
	cin>>A>>B;
	cout<<A*B;
	return 0;
}

提交记录

2025/2/5 20:42
加载中...