Vous avez une boîte avec des balles, nous tirons toutes les balles de la boîte.
Mais nous pouvons en tirer un à la fois ou trois à la fois.
Et l'ordre d'extraction importe.
La question est de savoir combien de façons différentes il y a d'extraire les boules.
Donc si le :
La boîte contient 1 balle, il n'y a qu'un seul chemin.
La boîte contient 2 balles, il n'y a qu'un seul moyen.
La boîte contient 3 balles, il y a 2 façons de tirer (1 par 1 ou 3 en même temps).
La boîte contient 4 balles, il y a 3 façons de les utiliser :
1111
13
31
Et le résultat était que pour 7 boules, il y avait 9 façons différentes d'extraire les boules de la boîte.
La question est donc de savoir combien de balles il y a dans la boîte,
La solution que j'ai trouvée était récursive :
Int calculate(int balls){
If(balls=0) return 0;
If(balls=1) return 1;
If(balls=2) return 1;
If(balls=3) return 2;
If(balls=4) return 3;
return calculate(balls-1) + calculate(balls-3);
}
Est-ce correct ?
Existe-t-il un moyen de le faire sans utiliser la récursion ?
Merci.