Вопрос по информатике:
Разработать рекурсивную функцию, не возвращающую значений:
даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения n-го члена и суммы n первых членов прогрессии. Сделать в C++ подробно и с пояснениями, пожалуйста
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 10.06.2016 20:50
- Информатика
- remove_red_eye 15749
- thumb_up 15
Ответы и объяснения 1
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;
}
- 11.06.2016 15:23
- thumb_up 47
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.