高精度*低精度乘法

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

 不用函数

 

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

  

posted @ 2024-05-25 09:58  fushuxuan1  阅读(25)  评论(0)    收藏  举报