Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n чётно;
F(n) = 2 × F(n − 2), если n > 1 и при этом
Чему равно значение функции F(26)?
Приведём решение задачи на четырёх языках программирования:
| Паскаль |
|---|
function F(N: integer): integer; begin if n = 1 then F := 1 else if n mod 2 = 0 then F := n + F(n-1) else F := 2 * F(n-2) end; begin writeln(F(26)) end. |
| Python |
def F(n): if n == 1: return 1 if n % 2 == 0: return n + F(n-1) if n>1 and n % 2 != 0: return 2 * F(n-2) print(F(26)) |
| С++ |
#include <iostream> using namespace std; int F(int n){ if(n == 1) return 1; if(n % 2 == 0) return n + F(n-1); return 2 * F(n-2); } int main(){ std::cout << F(26);} |
| Алгоритмический |
алг цел F(цел n) нач выбор при n =1 : знач:=1 при mod(n,2)=0 : знач:=n + F(n-1) при n>1 и mod(n,2)=1 : знач:=2 * F(n-2) все кон |
Результат работы программ — 4122.
Ответ: 4122.

