这一道题的思路和之前都是一样的,仍然是按照算式进行模拟的,这里就直接贴代码了:
#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我就再次更新一下)
标签:复习,int,back,part1,算法,vector,include,size From: https://www.cnblogs.com/clina/p/17977333