Ограничение времени: 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 можно и так и так