Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2010, 15:02   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

сорри, по невнимательности решил не ту задачу. Двигал циферки не вправо, как надо по условию задачи, а влево...

вот исправленный вариант с движением циферок по кругу вправо:
Код:
var N, K, Max, Mask : word;

begin
  Readln(N);

  if N=0 then begin
    WriteLn('Максимальный аналог равен НУЛЮ!');
    Halt(1);
  end;

  K := N;
  Mask := 0;
  while K>0 do begin
    if Mask=0 then Mask :=1
    else Mask := Mask shl 1;
    K := K shr 1;
  end;

  K := N;
  Max := N;
  repeat
    if (K and 1) = 1 then K := (K shr 1) or Mask
    else K := K shr 1;
    if K>Max then Max := K;
  until K=N;

  WriteLn('Для ',N:1,' максимальный аналог = ',Max:1);


end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать в турбо паскале побитовые сдвиги. Moneo Помощь студентам 1 26.02.2010 11:21
Delphi. Консоль. Массивы. Сдвиги в них. Saka Помощь студентам 2 10.12.2009 20:25
использовать оператор цикла, сдвиги и инкремент Еля Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 16.11.2009 15:04
Трудная прога на Паскале HECTOR.A. Помощь студентам 3 18.12.2008 08:54
Сдвиги и циклы ...вроде Magnit Паскаль, Turbo Pascal, PascalABC.NET 1 01.06.2007 01:01