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

Решить логическое уравнение .

Показать ответ
Ответ:
Виолетта2209
Виолетта2209
01.06.2022 17:01
Var n,d:integer;
begin
write('Введите месяц :');
readln(n);
write('Введите день :');
readln(d);
n:=n mod 12;

 case n mod 12 of
 1: if d<=20 then writeln('Козерок') else writeln('Водолей');
 2: if d<=21 then writeln('Водолей') else writeln('рыба');
 3: if d<=21 then writeln('рыба')   else writeln('овен');
 4: if d<=21 then writeln('овен')   else writeln('телец');
 5: if d<=21 then writeln('телец')   else writeln('близницы');
 6: if d<=22 then writeln('близницы')   else writeln('рак');
 7: if d<=23 then writeln('рак')   else writeln('лев');
 8: if d<=24 then writeln('лев')   else writeln('дева');
 9: if d<=24 then writeln('дева')   else writeln('весы');
 10: if d<=24 then writeln('весы')   else writeln('скорпион');
 11: if d<=23 then writeln('скорпион')   else writeln('стрелец');
 12: if d<=22 then writeln('стрелец')   else writeln('козерок');
end;
end.

//без if вряд ли удаться обойтись(+ я не учитывал високосный год и кратный 100 и 400)
0,0(0 оценок)
Ответ:
mishchenko07
mishchenko07
04.04.2023 15:56
Пусть *(n) - число звёздочек, которое выведет процедура f(n).

Так как f(n) всегда выводит 1 звёздочку, а если если n > 2 - то вызывает f(n - 1) и f(n - 2), то
*(n) = 1 при n <= 2
*(n) = 1 + *(n - 1) + *(n - 2) при n > 2.

*(1) = *(2) = 1
*(3) = 1 + *(2) + *(1) = 1 + 1 + 1 = 3
*(4) = 1 + *(3) + *(2) = 1 + 3 + 1 = 5
*(5) = 1 + 5 + 3 = 9
*(6) = 1 + 9 + 5 = 15
*(7) = 1 + 15 + 9 = 25
*(8) = 1 + 25 + 15 = 41
*(9) = 1 + 41 + 25 = 67
*(10) = 1 + 67 + 41 = 109
*(11) = 1 + 109 + 67 = 177
*(12) = 1 + 177 + 109 = 287
*(13) = 1 + 287 + 177 = 465
*(14) = 1 + 465 + 287 = 753
*(15) = 1 + 753 + 465 = 1219
*(16) = 1 + 1219 + 753 = 1973 >= 1500
ответ: 16.

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