Est-ce que quelqu'un connaît un mécanisme pour calculer au moment de la compilation le LCM (Least Common Multiple) et/ou GCD (Greatest Common Denominator) d'au moins deux nombres en C (C++, je sais que la magie de modèle est disponible là)?Compilateur LCM/GCD en C
J'utilise généralement GCC et je rappelle qu'il peut calculer certaines valeurs à la compilation lorsque toutes les entrées sont connues (ex: sin, cos, etc ...).
Je cherche comment faire cela dans GCC (de préférence d'une manière que d'autres compilateurs pourraient gérer) et j'espère que le même mécanisme fonctionnerait dans Visual Studio.
Cela ressemble à une solution intéressante ... avez-vous une idée de la taille des arguments avant de devoir ajouter plus de récursivité? Je vais devoir tester ça ce soir ... – harningt
Le pire scénario est pour deux nombres de fibbonacci consécutifs (voir la section 'Temps de fonctionnement' de http://en.wikipedia.org/wiki/Euclidean_algorithm). Pour les entiers non signés de 32 bits, il en résulte 45 étapes intermédiaires. Malheureusement, MSVC craint sur ma machine à 13 étapes. – Kevin
Il peut être possible de l'étendre à 45 étapes si vous avez beaucoup de mémoire sur votre machine de construction OU si vous modifiez un paramètre dans MSVC pour ajouter plus d'espace de tas. – Kevin