J'ai écrit un programme en C++ pour trouver toutes les solutions d' unb = c, où a, b et c ensemble utiliser tous les chiffres de 0 à 9 exactement une fois. Le programme en boucle sur les valeurs de a et b, et a couru un chiffre de comptage de routine à chaque fois sur a, b et unb pour vérifier si les chiffres condition était remplie.
Cependant, à de fausses solutions peuvent être générés lorsqu' unb débordements de l'entier de la limite. J'ai fini par vérifier cela à l'aide d'un code comme:
unsigned long b, c, c_test;
...
c_test=c*b; // Possible overflow
if (c_test/b != c) {/* There has been an overflow*/}
else c=c_test; // No overflow
Est-il un meilleur moyen de test pour dépassement de capacité? Je sais que certaines puces ont un indicateur interne qui est défini lors du dépassement de capacité se produit, mais je n'ai jamais vu, il est accessible par le biais de C ou de C++.