题目描述
求两数的积。
输入输出格式
输入格式:
两行,两个数。
输出格式:
积
输入输出样例
说明
每个数字不超过10^2000,需用高精
思路:模拟
#include<iostream> #include<string> #include<cstring> using namespace std; int num[10000]; string a,b; int string_a[10000]; int string_b[10000]; int main(){ cin>>a>>b; if(b=="0"||a=="0"){ cout<<0<<endl;return 0; } int n=a.length(),m=b.length(); for(int i=n-1;i>=0;i--) string_a[n-i-1+1]=a[i]-'0'; for(int i=m-1;i>=0;i--) string_b[m-i-1+1]=b[i]-'0'; for(int i=1;i<=m;i++){ int v=0; for(int j=1;j<=n;j++){ num[i+j-1]+=string_b[i]*string_a[j]; v=num[i+j-1]/10; num[i+j]+=v; num[i+j-1]=num[i+j-1]%10; } } for(int k=9999;k>=1;k--) if(num[k]!=0){ for(int i=k;i>=1;i--) cout<<num[i]; break; } }