1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| EXE |
17.12.2004 0:55
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Реальное имя: Диман Репутация: 0 |
Задача
На площадь выводят N человек, приговоренных к смерти, каждому из которым присвоен уникальный номер от 1 до N. Их расставляют по кругу по часовой стрелке по порядку. Казнь производится следующим образом: отсчитывают M человек, начиная с человека, стоящего после только что казненного, и этого M-го человека уводят на казнь. В начале казни отчет ведется от человека с номером 1. Узнать, человека с каким номером казнят K-м? С клавиатуры вводятся числа: N, M, K 1<=N<=30000 1<=M<=30000 1<=K<=N Я тут написал вроде, но не уверен. Посмотрите и подправьте если чего не так: :low: var -------------------- Время есть сущность всех вещей.
|
![]() ![]() |
| volvo |
18.12.2004 17:55
Сообщение
#2
|
|
Гость |
EXE
Ясно, исходника у тебя никакого нет... Разбираться в приведенной программе будешь сам. Код Const n = 11; m = 7; k = 3; Const liRange = SizeOf(LongInt) * 8; Type TBigReg = Array[1 .. (n div liRange) + Byte((n mod liRange) > 0)] Of LongInt; Procedure bit_info(bit: LongInt; Var block, offset: Byte); Begin block := Succ(Pred(bit) div 32); offset := Byte( ((bit mod 32) <> 0)) * 32 - (bit mod 32); end; Function is_bit_set(Var x: TBigReg; bit: LongInt): Boolean; Var bBlck, bOffs: Byte; Begin bit_info(bit, bBlck, bOffs); is_bit_set := (((x[bBlck] shr bOffs) and $1) = $1); End; Procedure xorBit(Var x: TBigReg; bit: LongInt); Var bBlck, bOffs: Byte; Begin bit_info(bit, bBlck, bOffs); x[bBlck] := x[bBlck] xor (LongInt($1) shl bOffs) End; Procedure reset_bit(Var x: TBigReg; bit: LongInt); Begin If is_bit_set(x, bit) Then xorBit(x, bit) End; Procedure set_bit(Var x: TBigReg; bit: LongInt); Begin If not is_bit_set(x, bit) Then xorBit(x, bit) End; Function down_next(Var people: TBigReg; k, every: LongInt): LongInt; Var curr_bit, count, i: LongInt; Function next_bit(x: LongInt): LongInt; Begin Inc(x); If x > n Then x := 1; next_bit := x End; Begin curr_bit := 0; For i := 1 To k Do Begin count := 0; While count < every Do Begin curr_bit := next_bit(curr_bit); inc( count, Byte(is_bit_set(people, curr_bit)) ) End; reset_bit(people, curr_bit) End; down_next := curr_bit; End; Var all: TBigReg; i: integer; begin For i := 1 To n Do set_bit(all, i); WriteLn('this was number: ', down_next(all, k, m)) end. |
EXE Казнь 17.12.2004 0:55
EXE Ну, чего никто ничего не говорит? Жду. А то в поне... 18.12.2004 13:24
volvo EXE
Подождать еще пару часов можешь? Заканчиваю о... 18.12.2004 13:59
EXE volvo
черт, я не тот исходник выложил. Только щас... 18.12.2004 14:28
volvo EXE
:nono: Нет уж, выкладывай свою... А потом сра... 18.12.2004 14:35
EXE Вообще-то я в форуме не круглосуточно сижу! ... 18.12.2004 21:42
K Y S K A Я сейчас на первом курсе и мне тоже задали эту зад... 25.11.2005 13:53
klem4 :blink: :mega_chok:
убераешь их из раздела CONS... 25.11.2005 17:04
K Y S K A А т ы попробуй и увидишь, что он пишет!!... 25.11.2005 18:23
klem4 Да .. придется перекроить прогу или использовать к... 25.11.2005 18:27
volvo K Y S K A, а ты скажи, что он тебе пишет, почему к... 25.11.2005 18:28
K Y S K A " Cannot evalute this expresion" вот чт... 25.11.2005 18:44
volvo K Y S K A,
первые строки программы меняются вот та... 25.11.2005 18:50
klem4 хм Volvo... а как интересно компилятор пойемт вот ... 25.11.2005 18:51
virt onst
n_max = 11;
m_max = 7;
k_max = 3;
Const
... 25.11.2005 18:52![]() ![]() |
|
Текстовая версия | 9.12.2025 12:55 |