正在载入在线练习界面,本页内容可直接阅读…
AK CSP › NOIP 提高 2017 第一轮真题 › 第 31 题
NOIP 提高 2017 第一轮 第 31 题:完善程序(大整数除法)第 5 空
题目
(大整数除法)给定两个正整数 $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);
i = 1;
while ((2) && i < n)
{
rest = rest * 10 + p[i];
i++;
}
if (rest < q)
cout << 0 << endl;
else
{
cout << (3);
while (i < n)
{
rest = (4);
i++;
cout << rest / q;
}
cout << endl;
}
cout << (5) << endl;
return 0;
}本小题
第 5 空应填( )
答案
rest%q
题解
考点定位
本题(大整数除法第⑤空)考「最终余数输出」,对应大纲 3.1 高精度(难度【2】)。
解题过程
⑤处输出余数:
``cpp cout << rest % q << endl; ``
答案:rest%q。
易错提醒
① 商输出完后 rest 即余数(再 %q 保险);② 除法验证:被除数 = 商×q+余数。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号