#include<bits/stdc++.h>
using namespace std;
string s1;
int a[250],b,p;//p表示找到的第一个非0元素的下标
int main(){
/*1286解题思路
1.将高精度整数s1逆序存入数组a
2.将数组a中的每一位和整数b相乘,结果存入a数组
3. 逐位进位
4.逆序输出
考虑两个数相乘,乘完后的结果是几位数
最少是一位,当整数b位0,结果是一位,要考虑到特殊情况
最多,多出4位
*/
cin>>s1;
cin>>b;
//将s1逆序存入数组a
for(int i=0;i<s1.size();i++){
a[i]=s1[s1.size()-1-i]-'0';
}
//逐位相乘
for(int i=0;i<s1.size();i++){
a[i]=a[i]*b;
}
//逐位进位,s1*b最多多出4位
for(int i=0;i<s1.size()+4;i++){
if(a[i]>=10){
a[i+1]=a[i+1]+a[i]/10;
a[i]=a[i]%10;
}
}
//逆序输出,从第一个非0元素开始输出
for(int i=s1.size()+4;i>=0;i--){
if(a[i]!=0){
p=i;
break;
}
}
for(int i=p;i>=0;i--){
cout<<a[i];
}
return 0;
}
/**************************************************************
Problem: 1286
User: hulaoshi
Language: C++
Result: Accepted
Time:14 ms
Memory:2080 kb
****************************************************************/