高精度*高精度乘法

#include <bits/stdc++.h>
using namespace std;
vector<int> z(vector<int> x,vector<int> y){
	int sum=0;
	vector<int> s(x.size()+y.size()+10,0);
	for(int i=0;i<x.size();i++){
		for(int j=0;j<y.size();j++){
			s[i+j]+=x[i]*y[j];
		}
	}
	for(int k=0;k<x.size()||sum;k++){
        sum+=s[k];
        s[k]=sum%10;
        sum=sum/10;
    }
	while(s.size()>1&&s.back()==0){
        s.pop_back();
    }
	for(int k=s.size()-1;k>=0;k--){
        cout<<s[k];
    }
}
int main(){
	string a,b;
	int sum=0; 
	cin>>a>>b;
	vector<int> c,d,s; 
	for(int i=a.size()-1;i>=0;i--){
		c.push_back(a[i]-'0');
	}
	for(int i=b.size()-1;i>=0;i--){
		d.push_back(b[i]-'0');
	}
	z(c,d);
	return 0;
}

  

posted @ 2024-05-31 19:56  fushuxuan1  阅读(9)  评论(0)    收藏  举报