AcWing 794. 高精度除算
正の整数A,Bを2つ与えて、A/Bの商と残高を計算してください.
入力形式は2行で、1行目は整数A、2行目は整数Bです.
出力フォーマットは2行で、1行目は求めた商を出力し、2行目は求めた残数を出力します.
データ範囲1≦Aの長さ≦100000,1≦B≦10000入力サンプル:7 2出力サンプル:3 1
入力形式は2行で、1行目は整数A、2行目は整数Bです.
出力フォーマットは2行で、1行目は求めた商を出力し、2行目は求めた残数を出力します.
データ範囲1≦Aの長さ≦100000,1≦B≦10000入力サンプル:7 2出力サンプル:3 1
#include
#include
#include
#include
#include
using namespace std;
vector<int> div(vector<int> &A,int b,int&r)
{
r=0;
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;
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;
}