В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
kolo120706
kolo120706
04.01.2021 23:50 •  Информатика

Кратко о проблеме : Нужна программа на Python для нахождения двух чисел , зная их НОД и НОК. На вход даются НОК и НОД . Если для введенных НОД и НОК нет чисел , вывести -1. Заранее

Показать ответ
Ответ:
Demorage
Demorage
23.11.2022 03:07
Решать будем на языке Паскаль.

Четырехзначные восьмеричные числа - это числа в диапазоне от 1111₈ до 7777₈
Мы можем поступить двояким
1) перевести оба числа в десятичную систему счисления и таким образом определить диапазон чисел, которые (предположительно) надо суммировать.
2) перевести оба числа в шестнадцатиричную систему и записать диапазон шестнадцатиричными числами (в Паскале их можно указывать).
Мне больше по душе второй вариант, потому что он не требует расчетов на калькуляторе или "в столбик".
1111₈ = 1 001 001 001₂ = 10 0100 1001₂ = 249₁₆
7777₈ = 111 111 111 111₂ = 1111 1111 1111 = FFF₁₆
Осталось решить вопрос о том, как отобрать числа, у которых в восьмеричном коде последняя не пятерка. Вспомним перевод числа из десятичной системы в восьмеричную: мы делим на 8, выписывая остатки, в потом записываем из в обратном порядке. Следовательно, последней цифрой числа будет остаток от самого первого деления. И это дает нам правило отбора чисел: остаток от деления числа на 8 не должен равняться 5.

PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  ReadSeqIntegerWhile(t->t<>0)
      .Where(t->t.Between($249,$FFF) and (t mod 8 <>5)).Sum.Println
end.

Склавиатуры вводится некоторое количество положительных чисел.ввод чисел заканчивается при вводе 0.н
0,0(0 оценок)
Ответ:
makhovak007
makhovak007
05.11.2022 14:08
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var k:=ReadInteger('От повторов какого числа избавляемся?');
  var id:=a.FindIndex(t->t=k);
  var b:=Copy(a);
  if id>-1 then begin
    var i:=0;
    while a[i]<>k do begin // до первого появляния нужного числа
      b[i]:=a[i];
      i+=1
      end;
    b[i]:=a[i]; i+=1; // само число
    var j:=i; // остальные такие числа будеи пропускать
    while i<a.Length do begin
      if a[i]<>k then begin b[j]:=a[i]; j+=1 end;
      i+=1
      end;
    SetLength(b,j)
  end;
  b.Println 
end.

Пример
n= 20
-43 -39 -9 -50 3 26 -43 9 -19 35 -13 -38 2 -32 -7 36 0 -43 11 -40
Укажите число-дубликат: -43
-43 -39 -9 -50 3 26 9 -19 35 -13 -38 2 -32 -7 36 0 11 -40
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота