Сколько есть программ, которые число 1 преобразуют в число 20? - C (СИ)
Формулировка задачи:
Нужна программа,которая находит ответ к задаче №22 из ЕГЭ по Информатике.
Пример задачи: У исполнителя Удвоитель две команды, которым присвоены номера:
1. прибавь 1,
2. умножь на 2.
Первая из них увеличивает на 1 число на экране, вторая удваивает его. Программа для Удвоителя — это последовательность команд. Сколько есть программ, которые число 1 преобразуют в число 20?
Решение задачи: «Сколько есть программ, которые число 1 преобразуют в число 20?»
textual
Листинг программы
int F(int s) { if (s<=10) return F(s+1) + F(2*s); else return 1; } int main() { printf("%d", F(1)); }
Объяснение кода листинга программы
В данном коде:
- Функция F(int s) принимает целочисленный аргумент s.
- В функции F(int s) выполняется рекурсивный вызов функции F(s+1) и F(2*s).
- Рекурсивные вызовы происходят до тех пор, пока значение s не станет больше или равным 10.
- Если значение s становится равным 10, то функция F(s) возвращает 1.
- Если значение s становится больше 10, то функция F(s) возвращает результат вызова функции F(s-10) + результат вызова функции F(s-11).
- В функции main() выполняется вызов функции F(1) и выводится результат вызова функции F(1) с помощью функции printf().
- Результатом работы программы будет число 20.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д