В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Valensia59
Valensia59
03.05.2021 20:17 •  Информатика

Разработать рекурсивную функцию, не возвращающую значений: даны первый член и разность арифметической прогрессии. написать рекурсивную функцию для нахождения n-го члена и суммы n первых членов прогрессии. сделать в c++ подробно и с пояснениями,

Показать ответ
Ответ:
dianahohlova
dianahohlova
01.09.2020 22:05
#include <iostream>

using namespace std;

void arithmeticProgression(const int& first, const int& differense, const int& N){
    // first - первый номер арифметической прогрессии
    // difference - разность
    // N - число, до которого продолжать прогрессию

    static int sum = 0; // тут будет сумма
    static int callsNumber = 0; // считаем число вызовов функции для определения номера элемента последовательности
    int next = first + differense; // следующий элемент прогрессии
    sum += first; // подсчет суммы

    if(callsNumber == N){
        cout << "finally item: " << first << endl;
        cout << "sum: " << sum << endl;
        sum = 0;
        callsNumber = 0;
        return; // если следующий элемент идет по порядку больше N, то прервать рекурсию
    }
    else{
        callsNumber++;
        arithmeticProgression(next, differense, N); // иначе делать тоже самое со следующим числом прогрессии
    }
}

int main(){
    arithmeticProgression(2, 3, 3); // пример вызова
    return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота