第一个点 输入是10和0,输出是0,为啥不给过。。
查看原帖
第一个点 输入是10和0,输出是0,为啥不给过。。
663326
czm2526366楼主2022/2/26 23:35
using namespace std;
#include<iostream>
#include<algorithm>
#include<math.h>
#include<iomanip>
#include<string>


int* stoa(string a) 
{
	int* A = new int[a.size()];
	for (int i = 0; i < a.size(); i++) {
		A[i] = a[a.size() - 1 - i] - '0';
	}
	return A;
}

	



int main()
{
	string a1, b1;
	cin >> a1>> b1;
	int* a = stoa(a1);
	int* b = stoa(b1);
	int* ans = new int[a1.size() + b1.size()]{ 0 };
	for (int i = 0; i < b1.size(); i++) {
		for (int j = 0; j < a1.size(); j++) {
			ans[i + j] += (b[i] * a[j]);
		}
		for (int i = 0; i < a1.size() + b1.size(); i++) {
			if (ans[i] >= 10) {
				ans[i + 1] += ans[i] / 10;
				ans[i] %= 10;
			}
		}
	}
	
	int i = a1.size() + b1.size() - 1;
	while (ans[i] == 0)
		i--;
	if (i == -1) {
		cout << 0;
		return 0;
	}
	for (; i >= 0; i--) {
		cout << ans[i];
	}




	


	
}

2022/2/26 23:35
加载中...