[Java] Essayez de résoudre le problème de Fizz Buzz en utilisant un traitement récursif
      
      
        
        
        
        
introduction
- Après avoir publié "[Java] Essayez de résoudre le problème de Fizz Buzz" auparavant, je me demandais si je pourrais écrire quelque chose de différent.
 
- En me concentrant sur le fait que "le nombre de jugements augmente de 1", j'ai pensé que le traitement récursif pouvait être utilisé, alors j'ai essayé.
 
Code créé
- La première branche conditionnelle, ʻif (end> 1) {...} 
, empêche tout traitement récursif supplémentaire lorsque ʻend == 1. 
- Il est conforme à la règle de FizzBuzz que "le premier joueur lit le nombre" 1 "".
 
FizzBuzz2.java
/**
 *Une méthode qui utilise un traitement récursif.
 * @param end Le nombre pour terminer FizzBuzz.
 */
public static void useRecursion(int end) {
	if (end > 1) {
		useRecursion(end - 1);
	}
	if (end%3==0 && end%5==0) {
		System.out.println("Fizz Buzz");
	} else if (end%3==0) {
		System.out.println("Fizz");
	} else if (end%5==0) {
		System.out.println("Buzz");
	} else {
		System.out.println(end);
	}
}
Résultat de l'exécution (* Quand 20 est spécifié dans l'argument end)
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz Buzz
16
17
Fizz
19
Buzz
Résumé
- J'ai pu résoudre le problème FizzBuzz en utilisant un traitement récursif.
 
- Cependant, si l'argument ʻend` devient grand, le nombre d'appels de traitements récursifs (fonction récursive) augmente également, donc il y a un risque de débordement de pile.