题目链接:A*B Problem - 洛谷
题目难度:普及-
涉及知识点:高精度
题意:
分析:直接套用模版即可
AC代码:
#include<bits/stdc++.h>
using namespace std;
char n[1000000],m[1000000];
int a[1000000],b[1000000],c[1000000];
int main()
{
ios::sync_with_stdio(false);//加快cin,cout
cin>>n>>m;
a[0]=strlen(n);//读入长度
b[0]=strlen(m);
for(int i=1;i<=a[0];++i)a[i]=n[a[0]-i]-'0';//倒叙进a,b数组
for(int i=1;i<=b[0];++i)b[i]=m[b[0]-i]-'0';
for(int i=1;i<=a[0];++i)
for(int j=1;j<=b[0];++j)
c[i+j-1]+=a[i]*b[j];//位位相乘之和
int len=a[0]+b[0];//乘积长度(未删除前导0)
for(int i=1;i<=len-1;++i)
if(c[i]>9)
{c[i+1]+=c[i]/10;//进位
c[i]%=10;}
while(c[len]==0&&len>1)len--;//删除前导0
for(int i=len;i>=1;--i)
cout<<c[i];//输出
return 0;
}
总结:直接套用模版即可