Заданы два натуральных числа N и K. Вычислить остаток от деления первого числа на второе.Входные данные:Входной поток содержит два целых числа N и K (1 меньше = N меньше = 10^100, 1 меньше = K меньше = 10^9) записанные в дв...

Заданы два натуральных числа N и K. Вычислить остаток от деления первого числа на второе.Входные данные:Входной поток содержит два целых числа N и K (1 <= N <= 10^100, 1 <= K <= 10^9) записанные в двух отдельных строках.Выходные данные:В выходной поток выведите остаток от деления N на K.Пример входного файла (input.txt):239 16 Пример выходного файла (output.txt):15
Гость
Ответ(ы) на вопрос:
Гость
type     bignum = array[1..100] of integer; var     a, b: bignum;     i, j, k, n_a, n_b: integer; procedure get_num(var m: bignum; var n: integer); var     i := 0;     s: string; begin     write('Введите число = ');     readln(s);     s := trim(s);     n := 0;     for i := length(s) downto 1 do         if s[i] in ['0'..'9'] then begin             n := n + 1;             m[n] := strtoint(s[i]);         end; end; function more(a, b: bignum; n_a: integer): boolean; var     i: integer;     f := false; begin     for i := n_a downto 1 do     begin         if a[i] > b[i] then f := true         else if a[i] < b[i] then f := false;         if a[i] <> b[i] then break;     end;     more := f; end; procedure show(m: bignum; n: integer); var     i: integer; begin     write('Вывод ');     for i := n downto 1 do         write(m[i]);     writeln(); end; begin     get_num(a, n_a);     get_num(b, n_b);         while (n_a >= n_b) and more(a, b, n_a) do         begin         if (a[n_a] > b[n_b]) then k := n_a - n_b         else if n_a > n_b then k := n_a - n_b - 1         else k := 0;                 for i := 1 to n_b do         begin             a[i + k] := a[i + k] - b[i];             if a[i + k] < 0 then begin                 for j := i + k to n_a - 1 do                 begin                     if a[j] >= 0 then break;                     a[j] := a[j] + 10;                     a[j + 1] := a[j + 1] - 1;                 end             end;         end;         if a[n_a] = 0 then n_a := n_a - 1;     end;         show(a, n_a); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы