给定两个正整数A和B,请你计算A * B的值。
输入格式
共两行,第一行包含整数A,第二行包含整数B。
输出格式
共一行,包含A * B的值。
数据范围
1≤A的长度≤100000,
1≤B≤10000
对于乘法,是把乘数看成一个整体,而不是和手算乘法的时候,一位一位的运算得出结果,这一点和手算不同。!!!!!!
#include<iostream>
#include<vector>
using namespace std;
int main(){
string A;
int b;
vector<int>V,ans;
cin>>A>>b;
for(int i = A.size() - 1;i >= 0;--i){
V.push_back(A[i] - '0');
}
int t = 0;
for(int i = 0; i < V.size(); ++i){ // 每次都把被乘数b当作一个整体
ans.push_back((V[i]*b + t) % 10); // 该位上对10取余之后是该位的数字
t = (V[i]*b + t)/10;
}
if (t) ans.push_back(t); // 最后一位运算之后,如果有进位,直接是当下一位。
for (int i = ans.size() - 1; i >= 0; --i){
printf("%d",ans[i]);
}
return 0;
}