(坚持每天写算法)算法复习和学习part1基础算法part1-9高精度乘法

  这一道题的思路和之前都是一样的,仍然是按照算式进行模拟的,这里就直接贴代码了:

 

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>

using namespace std;

//总结:vector,size,string,size , vector[i] , string[i];
vector<int> div(vector<int> &A , int b , int& r){
    vector<int> C;

    for(int i = A.size() - 1 ; i >= 0 ; i --){
        r = r * 10 + A[i];
        C.push_back(r / b);
        r %= b;
    }

    reverse(C.begin() , C.end());
    while(C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}
int main(){
    string a;
    int b;
    cin >>a>>b;
    vector<int> A;
    int r = 0;

    for(int i = a.size() - 1 ;  i >=0 ; i --)A.push_back(a[i] - '0');

    vector<int> C = div(A,b,r);
    for(int i = C.size() - 1 ; i >= 0; i --)cout<<C[i];
    cout << endl;
    cout << r;
    return 0;
}

  时间复杂度:O(n)

  (碎碎念一下,这里都只是贴了c++代码,其实每一道题我都有写java代码的,每过一个part我就再次更新一下)

posted @ 2024-01-20 23:18  程序计算机人  阅读(12)  评论(0)    收藏  举报