Страница 1 из 1

интересная задачка для программистов

Добавлено: 28 июн 2009, 15:41
NuM
есть код на паскале

Код: Выделить всё

for i:=1 to 6 do
begin
  case i of
    1,3,5:x:=1;
    2,4,6:x:=128;
  end;
  writeln(x);
end;
нужно представить его в виде

Код: Выделить всё

for i:=1 to 6 do
begin
  writeln(формула);
end;
где формула - выражение, состоящее из двух операций, так, чтобы результат выполнения был одинаковым.

p.s.Уважаемые модераторы, переместите пожалуйста тему обратно, я знаю решение этой задачки, а запостил на форум ее для того, чтобы другие попробовали реешить эту головоломку

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 10:23
Хыиуду
Переместил. Поиск решения занял секунд пять.

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 11:57
NuM
Хыиуду писал(а):Переместил. Поиск решения занял секунд пять.
простите за вопрос, но в вашем решении точно используется только две операции?

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 14:37
airyashov
насчет 2 не знаю, но с 3 легко

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 14:53
NuM
airyashov писал(а):насчет 2 не знаю, но с 3 легко
в этом и заключается сложность :)

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 14:56
airyashov
тогда нужен список операций какие можно использовать

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 14:58
NuM
airyashov писал(а):тогда нужен список операций какие можно использовать
+, -, *, div, mod, and, or, xor, not, shr, shl и скобки

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 16:02
airyashov
(i*127) and $81

Re: интересная задачка для программистов

Добавлено: 29 июн 2009, 16:21
NuM
airyashov писал(а):(i*127) and $81
правильное решение! а можете рассказать как вы до него дошли?