- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
function mux(a,b:integer):integer;
begin
if a=1 then mux:=b
else if (a=0) or (b=0) then mux:=0
else if (a<0) and (b<0) then mux:= mux(-b-1, -a) - a
else
mux:= mux(b-1, a) + a;
end;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−17
function mux(a,b:integer):integer;
begin
if a=1 then mux:=b
else if (a=0) or (b=0) then mux:=0
else if (a<0) and (b<0) then mux:= mux(-b-1, -a) - a
else
mux:= mux(b-1, a) + a;
end;
Лабораторная работа. Умножение чисел.
Her 24.02.2017 20:54 # +1
untitled_001 24.02.2017 20:56 # 0
guest 24.02.2017 23:25 # 0
1024-- 25.02.2017 00:14 # +2
a и b образуют двумерное пространство. Сначала оттуда вырезали a=1, затем - a=0 or b=0, затем a<0 and b<0. Пространство немного уменьшилось. В итоге остались варианты a<0 and b>0 и a>1 and b<>0, для которых применяется формула mux:= mux(b-1, a) + a. Чему равно mux(-1, 10)?
untitled_001 25.02.2017 07:48 # +2
guest 25.02.2017 11:13 # +1
Хорошо, а чему равно mux(10, -1)?
bormand 25.02.2017 11:13 # +1
bormand 25.02.2017 08:28 # +4
З.Ы. Строку 3, походу, можно выбросить.
bormand 25.02.2017 08:45 # +4
bormand 25.02.2017 08:57 # +2
untitled_001 25.02.2017 09:03 # 0
guest 25.02.2017 11:14 # 0
bormand 25.02.2017 11:16 # +2
Если лень думать - держи тест: http://ideone.com/KLS66y
guest 25.02.2017 11:24 # +2
Не осознал, что (а) a и b меняются местами, (b) из-за этого они постоянно крутятся, из-за чего положительное раз в две итерации уменьшается и рано или поздно становится нулём.
Код - не из очевидных, я бы переписал.
bormand 25.02.2017 11:26 # +1
Согласен. Я сначала тоже думал, что он забагован.
bormand 25.02.2017 04:32 # +1
Где здесь мультиплексор, untitled_001?
barop 25.02.2017 04:38 # 0
untitled_001 25.02.2017 07:49 # 0
guest 25.02.2017 16:36 # −4
untitled_001 25.02.2017 16:42 # 0
kegdan 27.02.2017 07:55 # +1
Какой еще нахуй мух?)))
Кстати по сабжу - классическое умножение на числах Пеано
j123123 27.02.2017 09:05 # +1