 Administrateur
 Auteur
 Modérateur
Inscrit le : 20 sep 2005
Localisation : Nord-Pas de Calais
Emploi :
Loisirs :
|
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 utiliser une fonction récursive.
CODE SOURCE
#include <stdio.h>
void tete_toto(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("%d\n",&N);
printf("0 = ");
tete_toto(N);
return 0;
}
EXPLICATIONS
Pour écrire sur la sortie standard, on utilise la fonction printf().
Pour lire sur l'entrée standard, on utilise la fonction scanf().
|