求助大佬!为什么自己尝试可以而提交就不行了呢?
查看原帖
求助大佬!为什么自己尝试可以而提交就不行了呢?
727398
123456789qaz楼主2022/5/27 16:23

每次自己测试都可以,为啥交上去就有问题了

望大佬回复!

#include<iostream>
#include<math.h>
#include<cstring>
using namespace std;
int a[4000];
int b[4000];
int c[8000];
int ak,bk;
string ain;
string bin;
void cheng(){
	//cout<<ak<<endl<<bk<<endl;
	for(int i=0;i<ak;i++){
		for(int j=0;j<bk;j++){
			c[i+j]+=a[i]*b[j];
			//cout<<i<<' '<<j<<' '<<c[i+j]<<endl;
		}
	}
	return ;
} 
void up(){
	for(int i=0;i<ak+bk+1;i++){
		c[i]=c[i]%10;
		c[i+1]+=c[i]/10;
	}
}
void out(){
	bool is0=true;
	for(int i=ak+bk+1;i>=0;i--){
		if(is0){
			if(c[i]!=0){
				cout<<c[i];
				is0=false;
			}
		}
		else{
			cout<<c[i];
		}
	}
}
void in(){
	
	cin>>ain>>bin;
	ak=ain.length();
	bk=bin.length();
	for(int i=0;i<ak;i++){
		a[i]=ain[ak-i-1]-'0';
	}
	for(int i=0;i<bk;i++){
		b[i]=bin[bk-i-1]-'0';
	}
	
}
int main(){

	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(c,0,sizeof(c));
	//cout<<"请输入两个乘数"<<endl; 
	in();
    if(ain=="0" || bin=="0"){
        cout<<'0';
        return 0;
    }
	//cout<<"solve in"<<endl;
	//for(int i=0;i<ak;i++){
		//cout<<a[i];
	//}
	//cout<<endl;
	//for(int i=0;i<bk;i++){
		//cout<<b[i];
	//}
	//cout<<endl;
	cheng();
	//cout<<endl<<"solve multiplication"<<endl;
	up();
	//cout<<"solve up"<<endl;
	//cout<<"OK! Answer is:";
	out();
	//cout<<endl<<"Thank for using!"<<endl;
	return 0;
}
2022/5/27 16:23
加载中...