En citant cette question sur SO (alerte spoiler!):
Cette question a été posée dans une interview avec Oracle.
Comment diviseriez-vous un nombre par 3 sans utiliser *, /, +, -,%, opérateurs?
Le numéro peut être signé ou non signé.
La tâche peut être résolue, mais voyez si vous pouvez écrire le code le plus court.
Règles:
- Effectuer la division entière requise (
/3
) - Ne pas utiliser les opérateurs non basés sur le texte
*
,/
,+
,-
ou%
(ou leurs équivalents, par exemple__div__
ouadd()
). Ceci s'applique également aux opérateurs d'incrémentation et de décrémentation, tels quei++
oui--
. L'utilisation d'opérateurs pour la concaténation de chaînes et le formatage est correcte. L'utilisation de ces caractères pour différents opérateurs, tels que l'-
opérateur unaire pour les nombres négatifs, ou*
pour représenter un pointeur en C est également acceptable. - La valeur d'entrée peut être arbitrairement grande (tout ce que votre système peut gérer), à la fois positive et négative
- L'entrée peut être sur STDIN ou ARGV ou entrée d'une autre manière
- Créez le code le plus court possible pour faire ce qui précède