高精度*低精度乘法
#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;
}

浙公网安备 33010602011771号