给定两个正整数A和B,请你计算A * B的值。
输入格式
共两行,第一行包含整数A,第二行包含整数B。
输出格式
共一行,包含A * B的值。
数据范围
1≤A的长度≤100000,
1≤B≤10000
输入样例:
2
3
输出样例:
6
https://www.acwing.com/problem/content/795/
#include <bits/stdc++.h>
#include <iostream>
#include <string.h>
using namespace std;
const int N = 100010;
int main()
{
long long b,la,i,t=0;
char sa[N];
scanf("%s",&sa);
scanf("%ld",&b);
int a[N],c[N];
la=strlen(sa);
//字符转数字,并倒叙存入 方便运算
for(i = la-1; i >= 0; i--)
a[la-i-1]=sa[i]-'0';
//如果乘的a数组结束或 或者暂存值的t结束了退出
for(i=0;i<la||t;i++){
//乘法是否结束
if(i<la) t+=a[i]*b;
//转存值
c[i]=t%10;
t/=10;
}
//去除前缀零 0023*0=0
while(c[i-1]==0&&i>1)i--;
//输出结果
for(int j=i-1;j>=0;j--)
printf("%d",c[j]);
return 0;
}