本地和洛谷IDE都没问题,但就是全RA AC必关
  • 板块P1303 A*B Problem
  • 楼主Sxu520
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/9/19 18:04
  • 上次更新2024/9/19 20:22:46
查看原帖
本地和洛谷IDE都没问题,但就是全RA AC必关
873151
Sxu520楼主2024/9/19 18:04
#include<iostream>
using namespace std;

void daoxu(int a[],int t){
	int temp=0;
	for(int i=0;i<t/2;i++){
		temp=a[i];
		a[i]=a[t-1-i];
		a[t-1-i]=temp;
	}
}                           //将数列倒序重排

int main(){
	int a[2005]={0},b[2005]={0},c[4010]={0};
	int p=0,q=0;
	char ch;
	for(int i=0;;i++){
		ch=getchar();
		if(ch=='\n')
			break;
		a[i]=ch-'0';
		p++;
	}
	for(int i=0;;i++){
		ch=getchar();
		if(ch=='\n')
			break;
		b[i]=ch-'0';
		q++;
	}
	daoxu(a,p);               
	daoxu(b,q);             //分别把a b数列倒序,a[0] b[0]都为个位 
	for(int i=0;i<p;i++){
		for(int j=0;j<q;j++){
			c[i+j]+=a[i]*b[j];
		}
	}                       //使a b中每一位分别相乘,并放到c数组中对应的位置上
	for(int i=0;i<4000;i++){
		if(c[i]>=10){
			c[i+1]+=c[i]/10;
			c[i]=c[i]%10;
		}
	}                       //对c数组从个位开始进位
	int k=0;
	for(int i=4000;i>=0;i--){
		if(k==0&&c[i]!=0){
			k=1;
		}
		if(k==1)
			cout<<c[i];
	}                       //从后面更高位开始输出c数组,得到相乘结果
	if(k==0)
		cout<<'0';          //若c中全为零,即相乘结果为0则输出0
	return 0;
}
2024/9/19 18:04
加载中...