#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> a, b;
string c, d;
int n = 0;
int r[1500] = {0};
vector<int> sub(vector<int> &a, vector<int> &b)
{
int t = 0;
for(int i = a.size() - b.size() - n,j = 0; j < b.size(); i++, j++)
{
t = a[i] - t - b[j];
a[i] = (t + 10) % 10;
if(t < 0) t = 1;
else t = 0;
}
if(t) a.back()--;
r[a.size() - b.size() - n]++;
while(a.back() == 0 && a.size() > 1) a.pop_back();
return a;
}
bool cmp1(vector<int> &a, vector<int> &b)
{
for(int i = a.size() - 1, j = b.size() - 1; j >= 0; i--, j--)
if(a[i] != b[j]) return a[i] > b[j];
return true;
}
bool cmp2(vector<int> &a, vector<int> &b)
{
if(a.size() != b.size()) return a.size() > b.size();
return cmp1(a, b);
}
int main()
{
cin >> c >> d;
for(int i = c.size() - 1; i >= 0; i--) a.push_back(c[i] - '0');
for(int i = d.size() - 1; i >= 0; i--) b.push_back(d[i] - '0');
while(cmp2(a, b))
{
if(cmp1(a, b)) n = 0;
else n = 1;
a = sub(a, b);
}
for(int i = c.size() - d.size(); i >= 0; i--)
{
if(i == c.size() - d.size() && r[i] == 0) continue;
cout << r[i];
}
return 0;
}
高精度除高精度
最新推荐文章于 2024-05-21 11:03:20 发布