Bonjour,

j'essaie un peu la récursivité en C++, je fais une fonction récursive qui calcule la somme des entiers jusqu'à n donné. Elle affiche également "0 + 1 + ... + n = somme", mais alors qu'elle devrait cesser de s'appeler lorsqu'un compteur incrémenté à chaque appel atteint n, hé bien elle continue un peu, allez savoir pourquoi.

Voici le code :

Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
void somme_entiers(int n)
{
	static int i = 0;
	static int somme = 0;
 
	if( i < n)
	{
		cout << i << " + ";
		somme += i;
		i++;
		somme_entiers(n);
	}
 
	if( i == n)
	{
		somme += n;
		cout << n << " = " << somme << endl;
	}
}
 
int main()
{
	int n;
 
	if( read_integer(n, 0) ) //fonction perso pour sécuriser la saisie
	{
		cout << "nombre : " << n << endl;
		somme_entiers(n);
	}
 
	return 0;
}

Une idée ?
Merci d'avance.