Составители:
Рубрика:
В обоих случаях для исполнения кода достаточно вызвать функцию Fact(), передав
ей число для вычисления факториала. В результате выполнения программы для факто-
риала 4, на экран будет выведено:
input N
4
4 ! = 24
#include <stdio.h>
void main ()
{
int N;
printf ("Input N: \n");
scanf ("%d", &N);
printf(" %d ! = %ld\n", N, Fact(N));
}
3. Функция, которая считает сумму элементов массива.
Рекурсивная функция Sum() вычисляет сумму элементов массива A[] для индексов,
изменяющихся от n0 до nMax. При n0 < nMax возвращаемое значение определяется в
виде суммы A[nMax] - элемента массива и результата вызова функции Sum() с фактиче-
ским параметром - номером последнего суммируемого элемента, равным nMax - 1. Ре-
курсивный вызов функции производится в операторе return в виде:
return (A[nMax] + Sum(A, n0, nMax - 1));
При n0 = nMax решение тривиально, возвращаемый результат = A[n0], начинается
обратный ход рекурсивных вычислений: возврат из вызванных функций результатов
суммирования. Для исполнения кода в данном примере динамически создается массив,
состоящий из N элементов, который заполняется цифрами от 1 до N. Память выделяется
функцией malloc(). Вызов рекурсивной функции производится в функции printf(). В ре-
зультате выполнения программы для массива, состоящего из 4 элементов, на экран будет
выведено:
input N
4
Sum = 10
#include <stdio.h>
#include <stdlib.h>
// Рекурсивная функция для вычисления суммы элементов массива:
int Sum ( int A[], int n0, int nMax )
{
if ( n0 == nMax )
return ( A[n0] ); // тривиальное решение
// рекурсивный вызов
else
return ( A[nMax] + Sum(A, n0, nMax - 1 ));
}
void main()
{
int *mass;
int N;
78
В обоих случаях для исполнения кода достаточно вызвать функцию Fact(), передав ей число для вычисления факториала. В результате выполнения программы для факто- риала 4, на экран будет выведено: input N 4 4 ! = 24 #includevoid main () { int N; printf ("Input N: \n"); scanf ("%d", &N); printf(" %d ! = %ld\n", N, Fact(N)); } 3. Функция, которая считает сумму элементов массива. Рекурсивная функция Sum() вычисляет сумму элементов массива A[] для индексов, изменяющихся от n0 до nMax. При n0 < nMax возвращаемое значение определяется в виде суммы A[nMax] - элемента массива и результата вызова функции Sum() с фактиче- ским параметром - номером последнего суммируемого элемента, равным nMax - 1. Ре- курсивный вызов функции производится в операторе return в виде: return (A[nMax] + Sum(A, n0, nMax - 1)); При n0 = nMax решение тривиально, возвращаемый результат = A[n0], начинается обратный ход рекурсивных вычислений: возврат из вызванных функций результатов суммирования. Для исполнения кода в данном примере динамически создается массив, состоящий из N элементов, который заполняется цифрами от 1 до N. Память выделяется функцией malloc(). Вызов рекурсивной функции производится в функции printf(). В ре- зультате выполнения программы для массива, состоящего из 4 элементов, на экран будет выведено: input N 4 Sum = 10 #include #include // Рекурсивная функция для вычисления суммы элементов массива: int Sum ( int A[], int n0, int nMax ) { if ( n0 == nMax ) return ( A[n0] ); // тривиальное решение // рекурсивный вызов else return ( A[nMax] + Sum(A, n0, nMax - 1 )); } void main() { int *mass; int N; 78
Страницы
- « первая
- ‹ предыдущая
- …
- 76
- 77
- 78
- 79
- 80
- …
- следующая ›
- последняя »
