Основы программирования на С++ для начинающих

Задача: Класс “Геометрическая прогрессия”

Классы С++ могут создаваться для описания самых неожиданных сущностей реального мира. Создайте класс «геометрическая прогрессия», объекты которого:

    • отображали бы геометрическую прогрессию с заданным начальным членом и знаменателем;
    • по индексации позволяли получить значения члена прогрессии с любым порядковым номером;
    • позволяли получить сумму начальных N-членов прогрессии;

Дополните класс, возможно, другими полезными свойствами.

Решение:

Можно было бы, конечно, в качестве класса геометрической прогрессии хранить нужное число начальных членов ряда. Но это а). крайне расточительно и б). при таком представлении непонятно, какое число членов ряда хранить? Показанное же решение компактное и эффективное:

Особенностью решения является то, что при выполнении операции индексации (извлечения члена прогрессии) делается быстрое рекурсивное (алгоритм Хоара) возведение в степень знаменателя.

Параметром командной строки можно переопределить длину тестового массива, куда переписываются члены прогрессии:

One thought on “Задача: Класс “Геометрическая прогрессия”

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *