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

У фокусника в колоде 5 цветных карточек: Красная (К), Зеленая (3), Синяя (С), Желтая (Ж) и
Оранжевая (0), перемешанные в случайном
порядке. Он начинает выкладывать карточки на
стол по порядку: сначала верхнюю в колоде,
потом следующую и так далее. В итоге карточки
легли к, ж, з, о, с.Затем
фокусник собирает карточки обратно в колоду в
прежнем порядке и вновь выкладывает их на стол
по очереди, начиная с верхней.
Теперь карточки лежат, О, к, ж, з, с.
В каком порядке карточки лежали в колоде
изначально? В качестве ответа запишите пять
заглавных букв через пробел.
Пример: КЗС ЖО

Показать ответ
Ответ:
HELPPP11
HELPPP11
21.12.2020 16:18
Если A, B имеют общий делитель d, то и A + B делится на d. Отсюда идея: найдем наибольший делитель N, меньший N, и представим всё в виде d + (N - d). d будем искать так: найдём наименьший делитель q, не равный 1 (если число составное, он не больше корня из N), тогда d = N/q.

var
  q, d, n: longint;
  isfound: boolean;

begin
  readln(n);
  isfound := false;
  for q := 2 to trunc(sqrt(n)) + 1 do
    if n mod q = 0 then
    begin
      d := n div q;
      write(d, ' ', n - d);
      isfound := true;
      break;
    end;
  if not isfound then
    write(1, ' ', n - 1);
end.
0,0(0 оценок)
Ответ:
iwanttobelllllive
iwanttobelllllive
06.12.2021 19:37

class WordConstructor:

   def __init__(self, number):

       self.number = number

   def vocab(self, number, args=None):

       if number == 1:

           return "Один"

       elif number == 0:

           return "Ноль"

       elif number == 2 and args:

           return "Две"

       elif number == 2:

           return "Два"

       elif number == 3:

           return "Три"

       elif number == 4 and args:

           return "Четыр"

       elif number == 4:

           return "Четыре"

       elif number == 5:

           return "Пять"

       elif number == 6:

           return "Шесть"

       elif number == 7:

           return "Семь"

       elif number == 8:

           return "Восемь"

       elif number == 9:

           return "Девять"

       elif number == 10:

           return "Десять"

       elif number == 11:

           return "Одиннадцать"

       elif number == 12:

           return "Двенадцать"

       elif number == 'suf.nadcat':

           return "надцать"

       elif number == 'suf.dcat':

           return "дцать"

       elif number == "suf.yat":

           return "десят"

       elif number == "suf.ok":

           return "ок"

       elif number == 90:

           return "Девяносто"

       elif number == 100:

           return "Сто"

       elif number == 'suf.sot':

           return "сот"

   def get_num_from_number(self, number, pos):

       return int(str(number)[pos])

   def construct(self):

       if self.number < 13:

           print(self.vocab(self.number))

       elif self.number < 20:

           if self.number == 14:

               print(self.vocab(int(str(self.number)[1]), args=True) + self.vocab("suf.nadcat"))

           else:

               print(self.vocab(int(str(self.number)[1]), args=True).replace("ь", "") + self.vocab("suf.nadcat"))

       elif self.number < 100:

           first = self.get_num_from_number(self.number, 0)

           second = self.get_num_from_number(self.number, 1)

           if second == 0:

               if first == 4:

                   print("Сор" + self.vocab("suf.ok"))

               elif first < 5:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat"))

               elif first < 9:

                   print(self.vocab(first) + self.vocab("suf.yat"))

               elif first == 9:

                   print(self.vocab(self.number))

               else:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat"))

           else:

               if first == 4:

                   print("Сор" + self.vocab("suf.ok") + " " + self.vocab(second).lower())

               elif first < 5:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())

               elif first < 9:

                   print(self.vocab(first) + self.vocab("suf.yat") + " " + self.vocab(second).lower())

               elif first == 9:

                   print(self.vocab(self.number - second) + " " + self.vocab(second).lower())

               else:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())

       elif self.number < 1000:

           zero = self.get_num_from_number(self.number, 0)

           first = self.get_num_from_number(self.number, 1)

           second = self.get_num_from_number(self.number, 2)

           if second == 0 and first == 0:

               if zero == 4:

                   print(self.vocab(zero) + self.vocab(100).lower())

               elif zero == 2:

                   print("Двести")

               elif zero == 3:

                   print(self.vocab(zero) + self.vocab(100).lower().replace("о", "а"))

               elif zero == 1:

                   print(self.vocab(100))

               elif zero <= 9:

                   print(self.vocab(zero) + self.vocab('suf.sot').lower())

for i in range(0, 1000):

   a = WordConstructor(i)

   a.construct()

Код очень нетривиален и не оптимизорован. Работает с 0-100 числами и может еще 200, 300...

Дальше с >100 писать мне очень лень, уж простите.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота