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

с Информатикой К Новому году ученики решили обновить гирлянду, состоящую из трёх видов флажков, висящих в произвольном порядке. Напишите программу, которая бы ребятам за наименьшее количество перестановок флажков обновить гирлянду, собрав следующий порядок флажков: сначала все красные флажки(s), затем все синие(s), а затем – белые(b). Укажите число перестановок для следующей исходной гирлянды: kbsbkbkkkbsbsksks

👇
Открыть все ответы
Ответ:
trototil
trototil
17.05.2022

Объяснение:

Последовательность дней недели периодична с периодом 7, поэтому номер дня недели можно найти, взяв остаток от деления: (номер дня недели первого числа + сколько Такое решение будет давать верный ответ для всех дней недели кроме воскресенья: для воскресений будет выведен ноль (а не 7). Решить это можно, перенумеровав все номера дней недели с нуля, а не с единицы.

m - 1 – номер дня недели первого числа месяца (считая с 0)

n - 1 – пройдёт от первого числа  

(m + n - 2) mod 7 – номер нужного дня недели (считая с 0)

(m + n - 2) mod 7 + 1 – ответ.

Программа (PascalABC.NET):

begin

 var n := ReadInteger;

 var m := ReadInteger;

 print((m + n - 2) mod 7 + 1)

end.

Пример ввода:

7

7

Пример вывода:

6

(Действительно, 1 апреля 2018 года – воскресенье, а сегодня, 7 апреля – суббота)

4,6(37 оценок)
Ответ:
Арина098765
Арина098765
17.05.2022

#Ruby 2


def getNumberByPosition(start_num, end_num, k, n = 3)

   # p [start_num, end_num, k, n]

   if not start_num.between?(10**(n - 1),10**n - 1) or not end_num.between?(10**(n - 1),10**n - 1) then return end

   s = ""

   for  i in start_num..end_num

       s += i.to_s()

   end

   number = start_num + (k-1) / n

   if number > end_num

       puts "Выход за пределы"

       return

   end

   # p number

   upper_limit = n + 1 - ((k % n == 0) ? n : k % n)

   number = number % (10**upper_limit)

   # p [number, 10**upper_limit, upper_limit]

   low_limit = upper_limit - 1

   number = number / (10**low_limit)

   # p [number, 10**low_limit, low_limit]

   puts "#{number} = #{s[k-1]}"

end

getNumberByPosition(101,150,20,3)

getNumberByPosition(101,150,21,3)

4,7(89 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ