Написать программу, которая вводит массив изnцелых чисел и выводит на экран этот же массив в прямом и обратном порядке. протестировать программу на произвольных массивах, состоящих из 1 числа, из 5 чисел, из 10 чисел.
Обозначим количество попасть обратно в начальную вершину за n прыжков как A(n), а количество попасть в одну из двух других вершин как B(n) (очевидно, количество одинаково для обеих вершин). Тогда:
A(n) = 2*B(n-1) {находясь в одной из двух не-начальных вершин после n-1 прыжка, лягушка прыгает в начальную вершину} B(n) = A(n-1) + B(n-1) {лягушка прыгает либо из начальной, либо другой не-начальной}
A(1) = 0 B(1) = 1
Далее по формулам A B - n 0 1 - 1 2 1 - 2 2 3 - 3 6 5 - 4 10 11 - 5 22 21 - 6 42 43 - 7 86 85 - 8 170 9
ответ: 170
mnkrasnova
09.04.2022
Обозначим количество попасть обратно в начальную вершину за n прыжков как A(n), а количество попасть в одну из двух других вершин как B(n) (очевидно, количество одинаково для обеих вершин). Тогда:
A(n) = 2*B(n-1) {находясь в одной из двух не-начальных вершин после n-1 прыжка, лягушка прыгает в начальную вершину} B(n) = A(n-1) + B(n-1) {лягушка прыгает либо из начальной, либо другой не-начальной}
A(1) = 0 B(1) = 1
Далее по формулам A B - n 0 1 - 1 2 1 - 2 2 3 - 3 6 5 - 4 10 11 - 5 22 21 - 6 42 43 - 7 86 85 - 8 170 9
begin
var n:=ReadInteger('n=');
var a:=ReadArrInteger('->',n);
a.Println; a.Reverse.Println;
end.
Тестовое решение:
n= 1
-> 7
7
7
n= 5
-> 3 6 9 2 6
3 6 9 2 6
6 2 9 6 3
n= 10
-> 1 3 5 7 9 2 4 6 8 0
1 3 5 7 9 2 4 6 8 0
0 8 6 4 2 9 7 5 3 1