(坚持每天写算法)算法复习和学习part1基础算法part1-9高精度乘法
1.(坚持每天都写算法)算法基础复习part1基础算法1-2——归并排序2.(坚持每天都写算法)算法基础复习part1基础算法1-1——快排3.(坚持每天都写算法)算法基础复习part1基础算法1-34.(坚持每天都写算法)算法基础复习part1基础算法1-4——二分5.(坚持每天都写算法)算法复习与学习part1基础算法1-56.(坚持每天写算法)算法复习与学习part1基础算法1-6——高精度加法7.(坚持每天写算法)基础算法复习与学习part1基础算法1-7——高精度减法(处理t=1和t>1代码的写法,t为操作次数)8.(坚持每天都写算法)算法复习与学习part1基础算法1.8高精度乘法
9.(坚持每天写算法)算法复习和学习part1基础算法part1-9高精度乘法
10.(坚持每天写算法)算法学习与复习part1基础算法part1-10——前缀和11.(坚持每天写算法)算法复习与学习part1基础算法part1-11——差分12.(坚持每天写算法)算法复习与学习part1基础算法part1-12——双指针算法13.(坚持每天写算法)算法学习与复习part1基础算法1-13——位运算14.(坚持每天写算法)算法复习和学习part1基础算法part1-14——离散化这一道题的思路和之前都是一样的,仍然是按照算式进行模拟的,这里就直接贴代码了:
#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我就再次更新一下)
本文作者:程序计算机人
本文链接:https://www.cnblogs.com/clina/p/17977333
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步