首页 > 试题广场 >

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

[填空题]
(大整数除法)给定两个正整数p 和q,其中p 不超过10100,q 不超过100000,求 p 除以 q 的商和余数。(第一空2 分,其余 3 分)
输入:第一行是 p 的位数 n,第二行是正整数 p,第三行是正整数 q。
输出:两行,分别是 p 除以 q 的商和余数。
var
  p : array[0..100] of longint;
  n, i, q, rest : longint;
  c : char;
begin
  readln(n);
  for i := 0 to n - 1 do
  begin
    read(c);
    p[i] := ord(c) - ord('0');
  end;
  read(q);
  rest := 1;
  i := 1;
  while (2) and (i < n) do
  begin
    rest := rest * 10 + p[i];
    i := i + 1;
  end;
  if (rest < q) then
    writeln(0)
  else
  begin
    write(3);
    while (i < n) do
    begin
      rest := 4;
      i := i + 1;
      write(rest div q);
    end;
    writeln;
  end;
  writeln(5);
end. 

这道题你会答吗?花几分钟告诉大家答案吧!