八十分求助
查看原帖
八十分求助
335573
freakflowey98楼主2020/9/18 22:27

不开o2就wa,开了o2就tle

代码如下

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string num1; 
string num2;//储存输入的字符串 
int data1[1000]={0}; 
int data2[1000]={0};//加数 
int ans[2000]={0}; //答案 
int main() {
	std::cin>>num1;
	std::cin>>num2;//输入
	reverse(num1.begin(),num1.end());
	reverse(num2.begin(),num2.end());//反转加数以便做加法
	int len1=num1.length();
	int len2=num2.length();//两个数的长度 
	for (int i=0;i<len1;i++) data1[i]=num1[i]-48;
	for (int i=0;i<len2;i++) data2[i]=num2[i]-48;
	//将输入的字符串化为加数
	int car=0;//进位 
	for (int i=0;i<len1;i++) {
	    car=0;
	    for (int j=0;j<len2;j++) {
	        ans[i+j]+=data1[i]*data2[j]+car;
	        car=ans[i+j]/10;
	        ans[i+j]%=10;
	    }
	    //每一遍循环之后的进位
	    ans[i+len2]+=car;
	}
	int ind=len1+len2;
	while (ind>0&&ans[ind]==0) ind--;
	//去掉前面多余的0
	for (int i=ind;i>=0;i--)
		std::cout<<ans[i];//输出答案 
	return 0;//华丽收尾 
}
2020/9/18 22:27
加载中...