@Lincoln_AP

Как решить задачу языком программирования?

Нужно словами в виде вымышленного кода решить задачу. У человека есть две футболки которые он должен одевать строго через день (например, сегодня черная, а завтра белая) и так весь год. Нужно учесть что в некоторых месяцах 30 дней, а в других 31, и числа 31 и 1 идут подряд. В вымышленном коде нужно использовать и число, и месяц. А так же не забыть о нюансах календаря.
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 2
@dmshar
Боюсь, что языком программирования эту задачу не решить. Решить ее можно мозгами. А вот записать решение - с помощью языка программирования.
А поскольку вам все равно, каким "языком программирования" пользоваться, то вот вам решение.
flag=False
dt=datetime.date(2022,1,1)
while dt<datetime.date(2023,1,1):
    if flag==True:
        color='Черная'
    else:
        color='Белая'      
    print(dt,color)
    flag= not flag
    dt+=datetime.timedelta(days=1)


И фрагменты вывода:
...
2022-02-25 Черная
2022-02-26 Белая
2022-02-27 Черная
2022-02-28 Белая
2022-03-01 Черная
2022-03-02 Белая
2022-03-03 Черная
...
2022-03-29 Черная
2022-03-30 Белая
2022-03-31 Черная
2022-04-01 Белая
2022-04-02 Черная
....

Как вы и просили, "о нюансах календаря" не забыли.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Во всех языках программирования есть библиотека поддержки дат. И во всех этих библиотеках есть функция расчета количества дней между двумя датами. Например

days(currentDate() - date('0001-01-01'))

Далее - четность-нечетность.

Тоесть от Рождества Христова до текущего дня. Вот такая вот декомпозиция задачи на простые функции.
А автору - жирный минус за то что он не может нормально постановку сделать. Какая-то гумнанитращина.
Нельзя-же так! Инженер должен уметь владеть языком функций.

И еще забыл указать какую футболку он одевает в условно первый день.

Словами решать эту задачу - категорически не интересно. Смотрите фунции работы с датами. Там есть свои нюансы. Есть разные календари и прочее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы