Supposons que je veuille résoudre l'équation x + 3 = 40 en utilisant GNU bc. Une façon de le faire serait de commencer par vérifier si 0 est une solution, puis de vérifier 1, et ainsi de suite, jusqu'à ce que j'arrive à la bonne réponse. (De toute évidence pas la meilleure façon de faire l'algèbre, mais oh bien.) J'entrez le code suivant dans bc GNU:Puis-je empêcher GNU bc de vomir des zéros?
int solver(int x);
define solver(x){
if(x + 3 == 40) return x;
x = x + 1;
solver(x)
}
solver(0)
Il produit 37 - la bonne réponse, bien sûr - mais le 37 est ensuite suivie 37 zéros. Sur la base de certaines expérimentations, il semble que chaque zéro provienne d'une instance de l'instruction if étant fausse, mais comment empêcher les zéros d'apparaître? J'utilise GNU bc pour résoudre des fonctions plus compliquées et créer des listes de nombres plus complexes, donc ce n'est vraiment pas pratique pour moi de trier tous les zéros. Toute aide serait appréciée, puisque je n'ai encore rien compris.