Ceci est une question d'entretien. Nous n'avons que deux constructions
boucle (a) code> signifie boucle pendant une époque. li>
-
incrément (a) code> incréments a. li>
ol> Ainsi, pour implémenter A + B ONE pourrait écrire P>
loop(a) {inc(b)}
return b;
5 Réponses :
Nous recherchons x, de sorte que a-b = x. En d'autres termes A = B + X P>
pseudocode p>
int x = 0 p>
tandis que (x <= a) do { p>
si (b + x == a) pause // satisfait a-b = x p>
x ++ p>
} p>
dépend si cette architecture numérique est connue:
Vous pouvez profiter du mécanisme "Deux compliments" de l'architecture x86 / x64, p>
par exemple, si le schéma de numérotation signé est cyclique comme . p> alors vous pouvez utiliser: p> (a-b)
{
loop(b) { dec(a) }
}
Que diriez-vous de
var a = 10; var b = 8; var result; for (var _b = 0; _b < b; _b++) { var last = 0, times = 0, loopa = 0; for (var _a = 0; _a < a; _a++) { last = times; times = inc(times); } result = a = last; } function inc(i) { return i + 1; } print(result) // 2
Si A = 2, il imprime 0. Vous avez besoin d'une fonction de négation.
Aye il va au sol des nombres négatifs, mais c'est aussi proche que vous pouvez obtenir, je pense que cela n'ait pas permis de négation
Je pense que si la pause de la boucle est autorisée, A-B peut être effectuée de cette manière: réussite en supposant A> b. p> p> p>
Mais encore une fois, vous ne pouvez utiliser que la boucle () et inc (). Vous ne pouvez pas utiliser == opérateur.
RESET B INC B LOOP A { INC D LOOP B { RESET D } }
Non. J'ai marqué des questions d'entrevue.
Je pense que c'est impossible; Vous avez besoin d'une négation ou d'une fonction de décrément
Vous avez probablement des fonctions de comparaison également disponibles, oui? Si vos seules constructions sont vraiment bouclées et incrémentation, je pense que c'est impossible, mais avec une branche, vous pourriez le faire fonctionner.
Je conviens que la question n'est pas complètement définie. Je suppose que la comparaison doit être là, non? Outre comment avez-vous l'intention de le faire avec une ramification? Est-ce différent de celui que j'ai proposé?