![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
DIAMOND |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите решить задачку, пожалуйста.
Отряд солдат окружен превосходящими силами противника. Надежда на победу без подкрепления исключается, однако для прорыва из лагеря имеется одна лошадь. Солдаты решабт выбрать одного человека и послать его за помощью. Они становятся в круг и из шляпы выбирается число N и одно из их имен. Производится счет счет по часовой стрелке по кругу, начиная с солдата с выбранным именем. Когда счетчик достигает N, соответвующий солдат удаляется из круга, а счет продолжается снова, начиная со следующего солдата. Последний оставшийся в круге солдат посылается за подмогой. Определите порядок удаления солдат из круга и имя оставшкгося солдата. Заранее благодарен. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ищи по форуму. Была нужная тебе программа, только с другим описанием... Она была под названием "Казнь"...
|
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
попробовал ради интереса решить ... заняться вообще нечем, моя верси про пиво
![]() uses crt;
var
soldiers:array[1..10] of string =
('Вова.П','Б.Страуструп','Д.Буш','С.Шнуров','Некто','klem4','Билл гтс','Касперский',
'Н.Вирт','К.Митник');
i,n,Ncount,count:integer;
Begin
clrscr;
randomize;
count:=10;
NCount:=0;
repeat
n:=random(count)+1;
if NCount>=count then NCount:=0;
i:=NCount+1; NCount:=1;
repeat
if i=count then i:=0;
inc(i);
inc(NCount);
until Ncount=n;
NCount:=i;
writeln('Выбыл : ',soldiers[Ncount]);
for i:=NCount to count-1 do
soldiers[i]:=soldiers[i+1];
dec(count);
until count=1;
writeln;
writeln('За пивом сегодня идет : ',soldiers[1]);
readln;
End.
нашел лишнюю проверку if i=count then ... ненужна -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
klem4,
а зачем это ты каждый раз пересчитываешь repeat
n:=random(count)+1; { <--- вот это ? }
По-моему, у тебя будут вообще совершенно случайные результаты... |
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
ааа... нужно однаковое N видимо, я просто недопонял.
Сообщение отредактировано: klem4 - 3.07.2005 19:39 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 0:09 |