P1303 只对一个测试点 求帮助
  • 板块P1303 A*B Problem
  • 楼主hkdzyhk
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/27 21:48
  • 上次更新2024/4/28 11:54:00
查看原帖
P1303 只对一个测试点 求帮助
1061135
hkdzyhk楼主2024/4/27 21:48
#include<bits/stdc++.h>
using namespace std;
char str[20005];
struct node{
	int len,s[20005];
	node(){len=0;memset(s,0,sizeof(s));};
};
node read(){
	node a;
	cin>>str;
	a.len=strlen(str);
	for(int i=a.len;i>0;i--)a.s[i]=str[a.len-i]-'0';
	return a;	
}
void print(node a){
	if(a.s[a.len+1]) cout<<a.s[a.len+1];
	for(int i=a.len;i>=1;i--) cout<<a.s[i];
	
}
node operator *(const node &a,const node &b){
	node c;
	c.len=a.len+b.len-1;
	if((a.len==1 && a.s[1]==0) || (b.len==1 && b.s[1]==0)){c.len=1,c.s[1]=0;return c;}
	for(int i=1;i<=a.len;i++){
		for(int j=1;j<=b.len;j++){
			c.s[i+j-1]+=a.s[i]*b.s[j];
			c.s[i+j]+=c.s[i+j-1]/10;
			c.s[i+j-1]%=10;
		}
	}
	while(c.s[c.len-1]==0 && c.len>1) c.len--;
}
int main(){
	node a,b,c;
	a=read();
	b=read();
	c=a*b;
	print(c);
}
2024/4/27 21:48
加载中...