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

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

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

 
 Ответить  Открыть новую тему 
> игра в казнь, найдите ошибку
Ex1Le
сообщение 27.05.2005 13:51
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.05.2005 14:02
Сообщение #2


Гость






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


Новичок
*

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

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


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


Новичок
*

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

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


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


Гость






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

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


Новичок
*

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

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


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


Гость






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


Новичок
*

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

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


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


Гость






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


Новичок
*

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

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


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

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

 



- Текстовая версия 19.06.2025 1:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"