高精度*低精度

#include <iostream>
#include <vector>
using namespace std;
int main(){
    string x;
    int y;
    cin>>x>>y;
    vector<int> a;
    for(int i = x.size()-1;i>=0;i--){
        a.push_back(x[i]-'0');
    }
    vector<int> arr;
    int j = 0,c = 0;
    for(int i = 0;i<a.size();i++){
        c += a[i]*y;
        arr.push_back(c%10);
        c /= 10;
        if(i==a.size()-1 && a[i]*y>=10){
            if(c+(a[i]*y%10)>=10){
                arr.push_back((a[i]*y/10+c+a[i]*y)%10);
            }else{
                arr.push_back(a[i]*y/10);
            }
        }
    }
    while(arr.size()>1 && arr.back()==0){
        arr.pop_back();
    }
    for(int i = arr.size()-1;i>=0;i--){
        cout<<arr[i];
    }
    return 0;
}

 

posted @ 2024-05-25 10:03  王一行(小号)  阅读(2)  评论(0编辑  收藏  举报