A除以B(千位数除法)

发布时间 2023-05-09 13:58:57作者: a_true

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

输入格式:

输入在一行中依次给出 A 和 B,中间以 1 空格分隔。

输出格式:

在一行中依次输出 Q 和 R,中间以 1 空格分隔。

 

#include<iostream>
#include<string>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
string arr;
char arry[1500] = {0};
int n, p, i, shang, yu = 0, j, flag = 0;
cin >> arr >> n;
int len = arr.length();
for(i = 0; i < len; i++)
{
p = (int)(arr[i] - '0') + 10 * yu;
shang = p / n;
yu = p % n;
arry[i] = (char)(shang + '0');
flag++;
}
for(i = 0; i < flag; i++)
if(arry[i] != '0')
{
for(j = i; j < flag; j++)
cout << arry[j];
break;
}
if(flag == 1 && arry[0] == '0')
cout << 0;
cout << " " << yu;
return 0;
}