NOIP 2017 提高组初赛试题_完善程序 5.1 大整数除法
给定两个正整数p和q,
其中p不超过10^100, q不超过100000,
求 p 除以 q 的商和余数。(第一空 2 分,其余 3 分)
输入:
第一行是 p 的位数 n,
第二行是正整数 p,
第三行是正整数 q。
输出:
两行,分别是 p 除以 q 的商和余数。
#include <iostream>
using namespace std;
int p[100];
int n, i, q, rest;
char c;
int main()
{
cin >> n;
for (i = 0;i < n; i++)
{
cin >> c;
p[i] = c - '0';
}
cin >> q;
rest = (1);//p[0]
i = 1;
while ((2) && i < n)//rest<q
{
rest = rest * 10 + p[i];
i++;
}
if (rest < q)
cout << 0 << endl;
else
{
cout << (3);//rest/q
while (i < n)
{
rest = (4);//rest%q*10+p[i]
i++;
cout << rest / q;
}
cout << endl;
}
cout << (5) << endl;//rest%q
return 0;
}
/*
1.正确答案: p[0]
2.正确答案: rest<q / q>rest
3.正确答案: rest/q
4.正确答案: rest%q*10+p[i]
5.正确答案: rest%q
*/