1262: 【作】【基础】高精度乘单精度
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:30
解决:13
题目描述
高精度乘单精度,a*b。 a是一个很大的非负整数,但不超过240位,b是一个非负整数不超过10000,求a*b。
输入
两行数字, 第一行是a,第二行是b。
输出
一行,输出a * b的计算结果。
样例输入 复制
111111111111111111111111111111111111
10
样例输出 复制
1111111111111111111111111111111111110
提示
#include<bits/stdc++.h>
using namespace std;
#define maxn 520
int a[maxn],b,c[maxn];
int main(){
string A;
cin>>A;
cin>>b;
int lena,lenb=0,lenc;
lena=A.length();
for (int i=lena-1;i>=0;i--) {
a[lena-i]=A[i]-'0';
}
for (int i=1;i<=lena;i++) {
c[i]+=a[i]*b;
c[i+1]=c[i]/10;
c[i]=c[i]%10;
}
lenc=lena;
while(c[lenc+1]>0){
lenc++;
c[lenc+1]=c[lenc]/10;
c[lenc]=c[lenc]%10;
}
while (c[lenc]==0)
lenc--;
for (int i=max(1,lenc);i>=1;i--)
cout<<c[i];
return 0;
}