站外题求助
  • 板块题目总版
  • 楼主wky_wsy_
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/6 22:20
  • 上次更新2024/10/7 09:30:13
查看原帖
站外题求助
1323415
wky_wsy_楼主2024/10/6 22:20

题目传送门
蒟蒻不会大整数乘法。

#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[1000],b[1000],c[1000];
string cheng(string s,string d){//乘法 
	string z;
	int ls=s.size();
	int ld=d.size();
	int lm=max(ls,ld);
	for(int i=0;i<ls;i++){
		a[i]=s[ls-i-1]-'0';
		
	}
	for(int i=0;i<ld;i++){
		b[i]=d[ld-i-1]-'0';
		
	}
	int l=lm,li=min(ls,ld);
	for(int i=0;i<li;i++){
		for(int j=0;j<lm;j++){
			if(li=ls){
				c[j]+=a[i]*b[j]*pow(10,i);
				
			}
			else c[j]+=a[j]*b[i]*pow(10,j);
			c[j+1]+=c[i]/10;
			c[j]%=10;
		}	
	}
	for(int i=lm;i<1000;i++){
		if(c[i-1]!=0) l++;
	}
	
	for(int i=l-1;i>-1;i--){
		z+=(char)(c[i]+'0');
		
	}
	return z;
}
signed main(){
	string s,d;
	cin>>s>>d;
	string z=cheng(s,d);
	cout<<z;
	return 0;
}
2024/10/6 22:20
加载中...