题目描述
输入两个整数 a , b a,b a,b,输出它们的商。
输入格式
两行,第一行是被除数,第二行是除数。
输出格式
一行,商的整数部分。
样例 #1
样例输入 #1
10
2
样例输出 #1
5
提示
0 ≤ a ≤ 1 0 5000 0\le a\le 10^{5000} 0≤a≤105000, 1 ≤ b ≤ 1 0 9 1\le b\le 10^9 1≤b≤109。
思路
这是一道高精/低精的题目。唯一需要注意的是r的类型,否则最后一个测试点过不去。
代码
#include <bits/stdc++.h>
using namespace std;
vector<int> caldiv(vector<int> a, int b) {vector<int> c;long long r = 0;for (int i = 0; i < a.size(); i++) {r = r * 10 + a[i];c.push_back(r / b);r %= b;}//将前导0去掉reverse(c.begin(), c.end());while (c.size() > 1 && c.back() == 0) c.pop_back();return c;
}
int main() {string s;int b;cin >> s >> b;vector<int> a;for (int i = 0; i < s.length(); i++) a.push_back(s[i] - '0');vector<int> c = caldiv(a,b);for (int i = c.size() - 1; i >= 0; i--)cout << c[i];return 0;
}