Задание 16. Информатика. 2022-5

Алгоритм вычисления значения функции \(F(n)\), где \(n\) — натуральное число, задан следующими соотношениями:

\(F(n) = 1\) при \( n = 1\);
\( F(n) = n + 2 \cdot F(n-1)\), если \(n\) чётно;
\(F(n) = 1 + 3 \cdot F(n-2) \), если \( n > 1\) и при этом \( n \) нечётно.

Чему равно значение функции \( F(17) \)?

Решение:

Python


def F(n):
    if n == 1:
        return 1 
    elif not n % 2:
        return n + 2 * F(n-1)
    else:
        return 1 + 3 * F(n-2)

print(F(17))

C++


#include<iostream>
using namespace std;

int F(int n) {
    if (n == 1)
        return 1;
    else if (n % 2 == 0)
            return n + 2 * F(n-1);
         else
            return 1 + 3 * F(n-2);
}

int main() {
    cout << F(17) << endl;
    return 0;
}

Java


public class z16_5 {

    static int F(int n) {
        if (n == 1)
            return 1;
        else if (n % 2 == 0)
                return n + 2 * F(n-1);
             else
                return 1 + 3 * F(n-2);
    }
    public static void main(String[] args) {
        System.out.println(F(17));
    }
}

Ответ: 9841