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

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

Ответ:
sirushdarbinyap0aqdv
sirushdarbinyap0aqdv
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
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?