Cytując to pytanie w SO (alert spoilera!):
To pytanie zostało zadane w wywiadzie dla Oracle.
Jak podzieliłbyś liczbę przez 3 bez użycia operatorów *, /, +, -,%?
Numer może być podpisany lub niepodpisany.
Zadanie można rozwiązać, ale sprawdź, czy możesz napisać najkrótszy kod.
Zasady:
- Wykonaj wymagany podział na liczby całkowite (
/3
) - Nie używać operatorów nietekstowa z siedzibą w
*
,/
,+
,-
, lub%
(lub ich odpowiedników, takich jak__div__
lubadd()
). Dotyczy to również operatorów zwiększających i zmniejszających, takich jaki++
lubi--
. Używanie operatorów do łączenia i formatowania ciągów jest OK. Używanie tych znaków dla różnych operatorów, takich jak-
operator jednoargumentowy dla liczb ujemnych lub*
do reprezentowania wskaźnika w C, jest również OK. - Wartość wejściowa może być dowolnie duża (cokolwiek twój system może obsłużyć), zarówno dodatnia, jak i ujemna
- Dane wejściowe mogą być na STDIN lub ARGV lub wprowadzone w inny sposób
- Utwórz najkrótszy kod, który możesz wykonać powyżej