• Нужно найти 10 елемент,я так понимаю это прогрессия,совсем не могу разобраться?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Можно последовательно найти t1, t2, t3 .. t9 и через них циклом подсчитать t10.

    Нужно их хранить в массиве и тупо записать формулу в коде. Знак суммы становится циклом, в котором надо вычисленное через i выражение прибавлять к счетчику.

    Такая реализация подсчета t(n) будет за O(n^2).

    Если подумать, то можно быстрее. Во-первых, при умножении t0 на С, tk умножится на C^(k+1). Можно доказать по индукции. Теперь осталось подсчитать числа для t0=1 и домножить на t0^( n+1).

    Если же выписать числа на бумажке, то можно заметить, что это числа Каталана, которые считаются по формуле
    (2n)!/n!/(n+1)!

    Итого, ответ - (2n)!/n!/(n+1)! * t0^(n+1)
    При n=10 дает 16796.

    Это уже можно подсчитать за O(n).
    Ответ написан
    Комментировать