题目链接:https://www.acwing.com/problem/content/795/
时/空限制:1s / 64MB
题目描述
给定两个正整数A和B,请你计算A * B的值。
输入格式
共两行,第一行包含整数A,第二行包含整数B。
输出格式
共一行,包含A * B的值。
数据范围
1≤A的长度≤100000,
1≤B≤10000
输入样例
2
3
输出样例
6
解题思路
题意:求一个大整数和一个整数的乘积。
思路:高精度乘单精度模板。
Accepted Code:
/*
* @Author: lzyws739307453
* @Language: C++
*/
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
char sa[MAXN];
// C = A * b, A >= 0, b > 0
vector <int> Mul(vector <int> A, int b) {
vector <int> C;
int t = 0;
for (int i = 0; i < A.size() || t; i++) {
if (i < A.size())
t += A[i] * b;
C.push_back(t % 10);
t /= 10;
}
return C;
}
int main() {
int sb;
vector <int> spa, spc;
scanf("%s%d", sa, &sb);
for (int i = strlen(sa) - 1; ~i; i--)
spa.push_back(sa[i] - '0');
spc = Mul(spa, sb);
for (int i = spc.size() - 1; ~i; i--)
printf("%d", spc[i]);
printf("\n");
return 0;
}