М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

Заданы два натуральных числа n и k. вычислить остаток от деления первого числа на второе.входные данные: входной поток содержит два целых числа n и k (1 < = n < = 10^100, 1 < = k < = 10^9) записанные в двух отдельных строках.выходные данные: в выходной поток выведите остаток от деления n на k.пример входного файла (input.txt): 239 16 пример выходного файла (output.txt): 15

👇
Ответ:
alicebro1
alicebro1
28.05.2020
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.
4,5(66 оценок)
Открыть все ответы
Ответ:
kauymbek
kauymbek
28.05.2020
Var
  m, n, nok, t, i: longint;

begin
  Write('Введите через пробел два целых положительных числа- ');
  Readln(m, n);
  {Сначала ищем НОК - наименьшее общее кратное}
  if m = n then begin
    nok := m;
    t := m * m
  end
  else begin
    t := m * n;
    repeat
      if m > n then m := m - n else n := n - m
    until m = n;
    nok := t div m
  end;
  {Теперь умножаем НОК на числа натурального ряда,
   пока не дойдем до величины t=m*n}
  if nok = t then Writeln('Требуемых чисел нет')
  else begin
    i := 1;
    while (nok * i < t) do
    begin
      Write(nok * i, ' ');
      i := i + 1
    end
  end
end.

Тестовое решение:
Введите через пробел два целых положительных числа- 8 120
120 240 360 480 600 720 840

Введите через пробел два целых положительных числа- 35 620
4340 8680 13020 17360

Введите через пробел два целых положительных числа- 7 13
Требуемых чисел нет
4,5(35 оценок)
Ответ:
Nadezhda136
Nadezhda136
28.05.2020
 Сообщение это совокупность знаков, отображающих ту или иную информацию. Передача сообщений (а, следовательно, и информации) на расстояние осуществляется с какого-либо материального носителя, например, бумаги или магнитной ленты или физического процесса, например, звуковых или электромагнитных волн, тока и т.д.
Информация — сведения об объектах и явлениях окружающей среды, их параметрах, свойствах и состоянии, которые воспринимают информационные системы (живые организмы, управляющие машины и др.) в процессе жизнедеятельности и работы.
4,4(37 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ