PROBLEME

Comme vous le savez, 0 + 0 = 0. On pourrait aussi dire 0 = (0 + 0). Dans ce cas, on peut aussi aller un peu plus loin, et puisque 0 vaut (0 + 0), remplacer les 0 de (0 + 0) par leur valeur, et obtenir :
0 = ((0 + 0) + (0 + 0)).
Rien n'empêche de continuer et d'écrire :
0 = (((0 + 0) + (0 + 0)) + ((0 + 0) + (0 + 0))).
Cela devient vite fatiguant de le faire à la main. Ecrivez-donc un programme qui le fait pour vous. Votre programme doit lire un entier N, et afficher la chaîne indiquant la valeur de 0, en ayant remplacé N fois les zéros à droite de l'égalité "0 = 0", par leur valeur : (0 + 0).
Votre programme doit impérativement utiliser une fonction récursive, et non une boucle..
CODE SOURCE
Code: C++ #include <cstdio> void tete_toto(unsigned int n) { if (n == 0) { printf("0"); return; } printf("("); tete_toto(n - 1); printf(" + "); tete_toto(n - 1); printf(")"); } int main(int argc, char* argv[]) { unsigned int N; scanf_s("%u", &N); printf("0 = "); tete_toto(N); printf("\n"); return 0; }
|