概述
Acwing 794. 高精度除法
题目描述
给定两个非负整数(不含前导 0
) A,B,请你计算 A/B 的商和余数。
输入格式
共两行,第一行包含整数 A,第二行包含整数 B
输出格式
共两行,第一行输出所求的商,第二行输出所求余数。
数据范围
1≤A的长度≤100000,
1≤B≤10000,
B 一定不为 0
思路
模拟人的计算过程,每一位上都有数字,最后将前面的零删除就行了。
代码
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
int n ,m;
vector<int> div(vector<int> A ,const int b, int& c)
{
vector<int> B;
c = 0;
// r 代表除以除数的剩余的部分,然后加上下一位
for(int i = A.size()-1 ; i >= 0 ;-- i)
{
c = c*10 + A[i];
B.push_back(c/b);
c %= b;
}
reverse(B.begin(), B.end());
while (B.size() > 1 && B.back() == 0) B.pop_back();
return B;
}
int main()
{
string a;
vector<int> A;
int B;
cin >> a >> B;
for (int i = a.size() - 1; i >= 0; i -- ) A.push_back(a[i] - '0');
int r;
auto C = div(A, B, r);
for (int i = C.size() - 1; i >= 0; i -- ) cout << C[i];
cout << endl << r << endl;
return 0;
}
cout << endl << r << endl;
return 0;
}
最后
以上就是细腻芹菜为你收集整理的Acwing 794.高精度除法Acwing 794. 高精度除法的全部内容,希望文章能够帮你解决Acwing 794.高精度除法Acwing 794. 高精度除法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复