题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
//c为商,r为余数
vector[HTML_REMOVED] div (vector[HTML_REMOVED] &A, int b,int &r)
{
vector[HTML_REMOVED]C;
//c的数组用来储存商的每一个数字
r = 0;
//从数组末尾开始,也就是数字的最高位开始
for(int i = A.size() - 1;i >= 0;i–)
{
r = r*10 + A[i];
//r为上一位的余数,所以剩余的到了这一位需要乘10并加上本位的值,变为实际的值
C.push_back(r/b);
//直接输出一位
r %= b;
//求出上一位剩余的余数
}
//因为最高时输出的是最高位,所以需要返过来
reverse(C.begin(),C.end());
//reverse函数用于反转在(first,last)范围内的顺序,reverse函数没有返回值
while(C.size() > 1 && C.back() == 0) C.pop_back();
//去除前导0的操作
return C;
}
int main()
{
string a;
int b;
cin >> a >> b;
vector<int>A;
for(int i = a.size() - 1;i >= 0;i--) A.push_back(a[i] - '0');
//void push_back(const T& x):向量尾部增加一个元素X,把a这个数字放入到数组中
int r;
auto C = div(A,b,r);
for(int i = C.size() - 1; i >= 0;i--){
printf("%d",C[i]);
}
//依次输出商
cout << endl << r << endl;
return 0;
}