本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:123456789050987654321 7输出样例:
17636684150141093474 3
#include<iostream>
#include<string>
using namespace std;
int main()
{
/*输入*/
string A;
int B;
cin >> A >> B;
/*A的长度*/
int longA;
longA = A.size();
/*除法*/
int i;
int R = 0;//余数
int Q[1000];
int j = 0;//指向商的位置
int a;
a = A[0] - '0';
int b;
for (i = 0; i < longA; i++)
{
if (a >= B)
{
b = a / B;
Q[j] = b;
R = a % B;
j++;
a = R * 10 + A[i + 1] - '0';
}
else
{
Q[j] = 0;
R = a;
j++;
a = R * 10 + A[i + 1] - '0';
}
}
/*输出商*/
if (Q[0] == 0 && longA>1)
i = 1;
else
i = 0;
for (; i < j; i++)
{
cout << Q[i];
}
/*输出余数*/
cout << " " << R;
return 0;
}