
Ограничение времени: 1c Ограничение памяти: 64mb Ввод: finance.in Вывод: finance.out В этом году
выпускники одиннадцатых классов будут сдавать ЕГЭ по информатике на компьютерах. Одна из задач предполагает умение анализировать работу рекурсивного алгоритма. Мы предлагаем Вам ’олимпиадную’ версию такой задачи. Исходный текст программы, используемой в задаче, размещен на сайте подготовки к ЕГЭ ’kpolyakov.spb.ru’ Рассмотрим функцию, приведенную ниже на трех языках программирования. Python def F( n ): print(n+1) if n > 1: print(2*n) F(n-1) F(n-3) Pascal procedure F( n: integer ); begin writeln(n+1); if n > 1 then begin writeln(2*n); F(n-1); F(n-3); end; end; C++ void F( int n ) { cout 1 ) { cout << 2*n << endl; F(n-1); F(n-3); } } Напишите программу, которая определяет, сколько двоек выводится на экран в результате вызова функции F(z). Ваша программа должна учитывать все цифры ’2’, выводимые программой, даже если она в составе числа. Формат ввода В единственной строке входного файла recursion.in записано число z. (1≤ z ≤50) Формат вывода В файл recursion.out следует вывести единственное число - ответ к задаче.

Ответы на вопрос

, получивших помощь
Ответ: такая задача уже была сегодня, поэтому дублирую свой ответ:
program TorLoki;
var
n, m: Integer;
T, L: Double;
begin
Write ('Введите N и M: ');
ReadLn (n, m);
L := n / (m - 1);
T := L + n;
WriteLn ('Сила Тора = ', T :10 :6);
WriteLn ('Сила Локи = ', L :10 :6);
ReadLn;
end.
Объяснение:
нужно решить систему уравнений:
T = L + N
T = L * M
получается
L * M - L = N
L (M - 1) = N
L = N / (M - 1)
это сила Локи, а для Тора:
Т = L + N или T = L * M можно и так и так



Конечно, я могу помочь вам с этой задачей. Программа должна определить, сколько раз цифра "2" будет выведена в результате вызова функции F(z) для заданного числа z. Давайте напишем код на Python:
pythondef count_twos(number):
if number <= 1:
return 0
count = 0
if number > 1:
count += str(2 * number).count('2')
count += count_twos(number - 1)
count += count_twos(number - 3)
return count
def main():
z = int(input())
result = count_twos(z)
with open('recursion.out', 'w') as f:
f.write(str(result))
if __name__ == "__main__":
main()
Вы можете поместить этот код в файл с названием, например, recursion.py
. Программа сначала считывает число z из файла recursion.in
, затем вызывает рекурсивную функцию count_twos
для подсчета количества цифр "2" и записывает результат в файл recursion.out
. Не забудьте предоставить входной файл recursion.in
с числом z.
Если у вас возникнут какие-либо дополнительные вопросы, не стесняйтесь спрашивать!


Похожие вопросы
Топ вопросов за вчера в категории Информатика







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