首页 > 试题广场 >

(大整数除法)给定两个正整数p 和q,其中p 不超过1010

[填空题]
(大整数除法)给定两个正整数p 和q,其中p 不超过10100,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;
} 

你的答案 (错误)

1 p[0]
2 rest
3
4
5
参考答案 
(1) p[0]
(2) rest<q 或 q>rest
(3) rest/q
(4) rest%q*10+p[i]
(5) rest%q

  • ????????
发表于 2019-10-14 23:18:00 回复(1)