Основи програмування на С ++ для початківців

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

Класи С ++ можуть створюватися для опису найнесподіваніших сутностей реального світу. Створіть клас «геометрична прогресія», об'єкти якого:

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

перезарядка Klass, возможно, іншими корисними властивостями.

Рішення:

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

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

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

Одна думка про "Задача: клас “Геометрична прогресія”

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *