Описать рекурсивную функцию для расчета n-го члена заданной арифметической прогрессии - C (СИ)
Формулировка задачи:
16. Даны первый член и разность арифметической прогрессии. Описать рекурсивную функцию для расчета n-го члена заданной арифметической прогрессии. Вычислить значение функции для различных n.
Нужна помощь мужики..
Решение задачи: «Описать рекурсивную функцию для расчета n-го члена заданной арифметической прогрессии»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
int pr(int first,int razn,int nom)
{
if(nom==1||nom==0)return first;
else
return pr(first,razn,nom-1)+razn;
}
int main()
{
int n=1,first,razn;
printf("A1=");
scanf("%i",&first);
printf("A2-A1=");
scanf("%i",&razn);
while(n)
{
printf("N=");
scanf("%i",&n);
printf("A%i=%i\n",n,pr(first,razn,n));
}
return 1;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с консолью и вводом/выводом данных.
- Определение рекурсивной функции pr(int first,int razn,int nom), которая принимает три аргумента: первый член прогрессии first, разность прогрессии razn и номер члена прогрессии nom.
- Проверка условия: если nom равен 1 или 0, то возвращается значение первого члена прогрессии first.
- В противном случае, функция вызывает саму себя, передавая в нее первый член прогрессии first, разность прогрессии razn и уменьшенное на 1 значение nom (nom-1), и к результату прибавляет значение разности прогрессии razn.
- В функции main() создаются переменные n, first и razn, которые используются для ввода данных с клавиатуры и вывода результатов на экран.
- С помощью цикла while происходит запрос на ввод номера члена прогрессии n и его вычисление с помощью функции pr(), до тех пор, пока от пользователя не будет введено значение 0.
- Выводится значение члена прогрессии с номером n.
- Возврат значения 1 из функции main(), что означает успешный завершение работы программы.