IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> игра в казнь, найдите ошибку
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


По кругу располагаются n человек. Ведущий считает по кругу, начиная с первого, и выводит ("казнит" m-го человека. Круг смыкается, счет возобновляется со следующего после "казненного"; так продолжается, пока "в живых" останется только один человек. Найти номер оставшегося "в живых" человека, а также для заданного n найти такое m>1, при котором "в живых" останется первый.



Код

var
 i,n,k,index:integer;
 num:array[1..5000] of integer;
begin
write('Vvedite kolichestvo chelovek v krugu');
readln(n);
write('Vvedite chislo, do kotorogo vedetsya chet');
readln(k);
for i:=1 to n do num[i]:=i;
writeln('Isxodnaya numeraciya:1,2,... ,',n);
write('Poryadok isklucheniya:');
index:=0;
while n>1 do
begin
i:=0;
repeat
inc(i,1);
inc(index,1);
if index=n then index:=0
until i=k;
if index <>i then
begin
write(num[index]:8);
for i:=index to n-1 do num[i]:=num[i+1];
dec(index,1)
end
else
write(num[n]:8);
dec(n,1)
end;
write('Ostalsya chelovek pod nomerom',num[n]);
readln
end.


де-то кроется ошибка...потому что первым вылетает последний человек...потом еще считает 0 за человека, и иногда вылетает 2 человека под одним номером
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






А поиском воспользоваться совсем лень?
Казнь
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


:p2: :yessss: respect
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


хмм...почему то при числах n=10, m=2, k=8 он перепрыгивает казнь 5го и 9го
( т.е. 10м должны казнить первого а прога считает ка 5го...а до 6го человека считает правильно...)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Ну, во-первых, по твоему условию K вообще всегда должно быть равно N, так как ты хочешь узнать, какого человека казнят ПОСЛЕДНИМ...

А во-вторых, если ты попробуешь нарисовать картинку на листе бумаги, то очень быстро убедишься, что при наличии 10-ти осужденных последним будет казнен НЕ №1, а №5, о чем и говорит программа...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


sad.gif казнять 2-4-6-8-10-3-5-7-9-1(!!) sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






:no: Внимательно !!!
2-4-6-8-10-3 ... Все правильно ... А дальше? 4-го уже казнили, поэтому будь добр 5-го пропустить, и казнить 7-го !!!
Вот окончательный порядок:
2-4-6-8-10-3-7-1-9-5 (!!!)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


:D нас 5 человек и все как я посчитали :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Значит, учитесь считать, прежде чем решать такие задачи ... Как же ты проверять результаты будешь? А та последовательность, которую я привел, ничего тебе не говорит?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


ты прав как всегда....:flowers:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 4:40
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name