ВУЗ:
Составители:
Рубрика:
. Практикум по курсу «Алгоритмизация и программирование». Часть 2
// функции
// попытка перейти в ячейку, расположенную справа
if(f==0 && a[x][y+1]==0 && !(x==xprev && y+1==yprev))
f=Labirint(a,m,n,x,y+1,x,y); // рекурсивный вызов
// функции
// попытка перейти в ячейку, расположенную сверху
if(f==0 && a[x-1][y]==0 && !(x-1==xprev && y==yprev))
f=Labirint(a,m,n,x-1,y,x,y); // рекурсивный вызов
// функции
// попытка перейти в ячейку, расположенную слева
if(f==0 && a[x][y-1]==0 && !(x==xprev && y-1==yprev))
f=Labirint(a,m,n,x,y-1,x,y); // рекурсивный вызов
// функции
// возврат в предыдущую ячейку
a[x][y]=0;
return f;
}
Домашнее задание
1. Написать рекурсивную функцию вычисления n!! = n*(n-2)*(n-4)… . По-
следний сомножитель в произведении равен 2, если n – четное число, 1 – в
противном случае.
2. Написать рекурсивную функцию вычисления числа комбинаций из n
по k (C(n, k)) с помощью следующих рекуррентных соотношений:
C(N, 0) = C(N,N) = 1,
C(N,K) = C(N - 1,K) + C(N - 1, K - 1), где 0 < K < N.
3. Написать рекурсивную функцию вычисления наибольшего общего де-
лителя двух положительных целых чисел m и n (m > n).
НОД (m, n) = НОД (n, m%n), если n ≠ 0; НОД (m, 0) = n.
4. Написать рекурсивную функцию вычисления суммы цифр из записи
целого положительного числа, не используя операторов цикла.
49
. Практикум по курсу «Алгоритмизация и программирование». Часть 2
// функции
// попытка перейти в ячейку, расположенную справа
if(f==0 && a[x][y+1]==0 && !(x==xprev && y+1==yprev))
f=Labirint(a,m,n,x,y+1,x,y); // рекурсивный вызов
// функции
// попытка перейти в ячейку, расположенную сверху
if(f==0 && a[x-1][y]==0 && !(x-1==xprev && y==yprev))
f=Labirint(a,m,n,x-1,y,x,y); // рекурсивный вызов
// функции
// попытка перейти в ячейку, расположенную слева
if(f==0 && a[x][y-1]==0 && !(x==xprev && y-1==yprev))
f=Labirint(a,m,n,x,y-1,x,y); // рекурсивный вызов
// функции
// возврат в предыдущую ячейку
a[x][y]=0;
return f;
}
Домашнее задание
1. Написать рекурсивную функцию вычисления n!! = n*(n-2)*(n-4)… . По-
следний сомножитель в произведении равен 2, если n – четное число, 1 – в
противном случае.
2. Написать рекурсивную функцию вычисления числа комбинаций из n
по k (C(n, k)) с помощью следующих рекуррентных соотношений:
C(N, 0) = C(N,N) = 1,
C(N,K) = C(N - 1,K) + C(N - 1, K - 1), где 0 < K < N.
3. Написать рекурсивную функцию вычисления наибольшего общего де-
лителя двух положительных целых чисел m и n (m > n).
НОД (m, n) = НОД (n, m%n), если n ≠ 0; НОД (m, 0) = n.
4. Написать рекурсивную функцию вычисления суммы цифр из записи
целого положительного числа, не используя операторов цикла.
49
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »
