Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Zarj9999
0 / 0 / 0
Регистрация: 08.06.2015
Сообщений: 5
1

Алгоритм Нарайаны - Найти такой наибольший j для которого выполняется условие

09.06.2015, 00:00. Просмотров 797. Ответов 1
Метки нет (Все метки)

Алгоритм Нарайаны
Шаг 1. Найти такой наибольший j для которого aj<=aj+1;
Шаг 2. Увеличить aj (для этого надо установить l=n, aj>=al, уменьшать L на единицу, после этого поменять местами aj и al.
Шаг 3. Развернуть последовательность с j+1 до an.

Помогите дописать программу

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const n=4;
  var i,j:integer;
  type
  vektor = array [1..n] of integer;
function makeintperv: vektor;
begin
   for i:=1 to n do
   result[i]:=i;
end;
 
function findJ (mas:vektor):integer;
begin
  for i:=n-1 downto 1 do
  if mas[j]<=mas[j+1] then
  begin
  result:=j;
  break;
  end;
   end;
 
function findL (mas:vektor):integer;
begin
 result:=n;
 while mas[j]>=mas[result] do
 dec(result);
 end;
 
procedure swap (var a,b:integer);
VAR C : INTEGER;
begin
a:=c;
b:=a;
b:=c;
end;
 
procedure swapsek (mas:vektor);
begin
for i:=1 to n div 2 do
swap(mas[i], mas[n+1-i]);
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2015, 00:00
Ответы с готовыми решениями:

Найти наименьший номер n, для которого выполняется условие |an – an-1|<0,1 , если последовательность an имеет вид an+1= an+ 2/an.a1=1
помогите пожайлуста

Найти первый из номеров К, для которых выполняется условие
!!!!!!!!!!Народ распишите плиз решения(алгоритмы)программ на языке Delphi те...

Для целого числа N=1313 найти общее количество пар целых чисел x и y, для которых выполняется условие 7x+2y=N
Для целого числа N=1313 найти общее количество пар целых чисел x и y, для...

Найти первый член последовательности, для которого будет выполняться условие
Помогите мне решить задачу. Для числовой последовательности...

Найти наибольший трехзначный элемент массива. Условие
Дан одномерный целочисленный массив. Составить программы для решения следующих...

1
Rasomaha
55 / 55 / 37
Регистрация: 11.05.2015
Сообщений: 196
09.06.2015, 09:13 2
не вникая в суть алгоритма
Цитата Сообщение от Zarj9999 Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
procedure swap (var a,b:integer);
VAR C : INTEGER;
begin
a:=c;
b:=a;
b:=c;
end;
не верно делаешь
Delphi
1
2
3
4
5
6
7
8
Procedure Swap(var a,b: Integer);
var
c: Integer;
begin
c:=a;
a:=b;
b:=c;
end;
Цитата Сообщение от Zarj9999 Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
function findJ (mas:vektor):integer;
begin
for i:=n-1 downto 1 do
if mas[j]<=mas[j+1] then
begin
result:=j;
break;
end;
end;
В цикле i, а передаешь и смотришь j.

Добавлено через 29 минут
Цитата Сообщение от Zarj9999 Посмотреть сообщение
Pascal
1
2
3
4
5
procedure swapsek (mas:vektor);
begin
for i:=1 to n div 2 do
swap(mas[i], mas[n+1-i]);
end;
это как я понимаю 3 шаг, а где тогда ты передаешь j?
Delphi
1
2
3
4
5
6
7
8
procedure SwapSek(j: integer; var mas: vektor);
var
i: Integer;
begin
Inc(j);
For i:=j to j+((n-j) div 2) do
  Swap(mas[i],mas[n+1-i]);
end;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2015, 09:13

В неупорядоченном списке удалить те элементы, для которых выполняется заданное условие
В неупорядоченном списке удалить те элементы, для которых выполняется условие:...

Найти наибольший общий делитель - алгоритм Евклида
Найти наибольший общий делитель - алгоритм Евклида.

Даны два натуральных числа X и Y. Найти их наибольший общий делитель, используя рекурсивный алгоритм Эвклида.
1. Даны два натуральных числа X и Y. Найти их наибольший общий делитель,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru