NightPaladin
27.11.2004 20:39
Ещё одна задача. В ней надо постоянно исключать каждый второй элемент т.к они расположены по кругу, то закончив один круг т.е. дойдя до еденицы, новый круг проходит уже для оставшихся элементов, и т.д. до тех пор пока не останется одно - вот его и надо вывести на экран
Собственно условие
Числа от 1 до N расставляем по кругу и вычеркиваем каждое второе число, начиная
с 1. Определить какое число останется последним.
На входе натуральное число N (1<= N <= 1000 000), на выходе последнее число.
Пример Результат
5 3
Jahnerus
27.11.2004 23:28
Код
uses
crt;
const
n=5;
var
a:array[1..n] of integer;
b:array[1..n] of boolean;
i,j,k:longint;
begin
clrscr;
randomize;
for i:=1 to n do begin
a[i]:=random(100);
b[i]:=true;
end;
k:=0;i:=0;j:=0;
repeat
i:=i+1;
if i>n then i:=1;
if b[i] then begin
j:=j+1;
if (j mod 2) =0 then begin
b[i]:=false;
k:=k+1;
end;
end;
until k=n;
writeln('Poryadkoviy nomer ',i);
writeln('Znachenie ',a[i]);
readln;
end.
Jahnerus Цитата
На входе натуральное число N (1<= N <= 1000 000)
Это тебе ни о чем не говорит? Ты прогонял программу со значением 40000?
Jahnerus
27.11.2004 23:35
volvo
Цитата
Ты прогонял программу со значением 40000
Да и на 1000000 прогонял работает нормано!
Чё тебя не устраивает не пойму...
Jahnerus Код
const
n=1000000;
var
a:array[1..n] of integer;
b:array[1..n] of boolean;
Это работает?
А вот это - работает для любых значений, которые помещаются в LongInt:
Код
const
n:longint = 2000;
var
last, i, pred: longint;
begin
pred := $0001;
while pred < n do
pred := pred shl 1;
if pred = n then last := 1
else
begin
pred := pred shr 1;
last := 1 + 2*(n - pred);
end;
writeln('оставшееся число:', last);
end.
NightPaladin
28.11.2004 0:23
Всем большой сэнкс volvo и Jahnerus
Если не трудно могли бы вы пояснить код, если будет время построчно.
Заранее благодарю и с уважением NightPaladin
P.S. вопрос наверное тупой, а как рейтинг повышать?
GoodWind
28.11.2004 12:25
Скажи одному из модераторов (мне, Volvo, или Oleg_Z)
я так понял ты хочешь поднять рейтинг Jahnerus`у ?
Сделано...
Цитата
Скажи одному из модераторов
Вообще-то я не модератор
Цитата
группа: администраторы
:D
GoodWind
28.11.2004 13:14
Цитата
Вообще-то я не модератор
зато ты до-сих пор числишься в модераторах раздела ;)
посмотри
Больше 10000 программа Jahnerus не потянет. Массивы такие не задают уже....
так что повышение рейтингане оправданно, GoodWind. Ты поторопился, не проверив.
Массивы не могут быть длинее чем 65536 элементов.
...
Работает программа volvo ... только.
NightPaladin
28.11.2004 14:01
Опять здравствуйте. Вообщето я имел ввиду повысить рейтинг и Jahnerus и volvo. Раз Jahnerus рейтинг уже повысили и для этого надо выслать заяву, то прошу повысить его и volvo. Или это на PM отсылать надо?
Jahnerus
28.11.2004 15:52
Oleg_ZЦитата
Больше 10000 программа Jahnerus не потянет. Массивы такие не задают уже....
Оплошность моя в том что писал я её на Delphi и проверял там же .... а затем лишь чучуть код под ТП поменял ... и не проверил ... так что не судите строго бывает
Цитата
так что не судите строго бывает
Ок :D
Но если это не пойжет на FPC, вообзе снижу на -5
шутка :D :D
Jahnerus
28.11.2004 16:12
Ценю юмор ....
Цитата
Но если это не пойжет на FPC, вообзе снижу на -5
Ну FPC то покруче будет чем TPC так что всё рулит !!!
А рейтинг помойму снижать дальше не куда ... ;)
Флогримм
29.11.2004 10:13
Цитата
Но если это не пойжет на FPC, вообзе снижу на -5
снизить значит уменьшить, значит -, а Зю сказал, что снизит на -5 итого -(-5)=5=+5
Jahnerus радуйся, ща повысят
:P
GoodWind
29.11.2004 19:07
Цитата
А рейтинг помойму снижать дальше не куда ...
а вот и есть... был тут кто-то с рейтингом -1
Jahnerus
29.11.2004 21:46
GoodWindЦитата
был тут кто-то с рейтингом -1
Я тоже хочу рейтинг -1
. Ты же всемогущий модератор ... чё тебе стоит ;) .
Вот вас таких много с положительными рейтингами, а я один буду !!! :D Уникальный
Цитата(Jahnerus @ 29.11.04 17:46)
GoodWindЯ тоже хочу рейтинг -1
. Ты же всемогущий модератор ... чё тебе стоит ;) .
Вот вас таких много с положительными рейтингами, а я один буду !!! :D Уникальный
Мазохист..... я не садист, но помочь могу... хотя смысла в этом нет...
:D
[Оффтоп]Когда-то в БК я попросил паладина наложить на меня молчанку.... тоже без всякого смысла, но ради прикола...
[/Оффтоп]
Jahnerus
29.11.2004 22:23
Спасибо за понимание ...
APAL
GoodWind
29.11.2004 23:00
APAL, млин я тоже чуть ему не понизил
был бы вообще уникальный
Jahnerus, хочешь быть уникальнее ?
Jahnerus
29.11.2004 23:23
GoodWindЦитата
Jahnerus, хочешь быть уникальнее ?
Конешно , а почему бы и нет ...
скока у вас там минимальный рейтинг ?
:D да и ещё надо было вам группу сделать UNIQUE ... или вместо
Статуса не "Новичок" и даже не "Ищущий истины", а "Уникальный"... :P
сделал . GoodWind
Апалу: плохой пример подаешь - ты же админ - образец для подражания.
ГудВинду: а ты вообще с ума сошел? Ты какого *** тут флейм допустил.
Вольво: а ты должен был вовремя вмешаться, понизить ему рейтинг еще!
Я: закрываю тему, и меняю статус ему на "уникальный".
Т.к. статус и так уже уникальный - рейтинг вернул до с -2 до 0 APAL
GoodWind
30.11.2004 22:31
Гы... зато весело было
А кто тебе разрешал открывать тему, закрытую админом? Олег.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.