salut svp besoin d'aide sur ce code je vois pas d'erreur pourtant le compilateur javac m' en affiche, voici le code :
package hello;
import java.util.Scanner;
/** Ceci est une implémentation du message traditionnel "Hello world!"
* @author L'équipe Education d'OpenClassrooms
*/
public class Factoriel {
/** Le programme commence ici */
public static void main(String[] args) {
int n =0;
System.out.print(" Entrer un nombre: ");
Scanner clavier = new Scanner (System.in);
n = clavier.nextInt();
RecursionInJava.factorial(n);
}
public class RecursionInJava{
public static int factorial(int n) {
if (n == 1)
return 1;
else
while(n>=1)
return n * factorial (n-1);
}
}
Déjà ici c'est la section js (javascript) et non java
Ensuite le message d'erreur est claire. Il te manque une } dans ton code.
Ensuite, évite vraiment les conditions et boucle sans les { et }
package hello;
import java.util.Scanner;
public class Factorial
{
public static void main(String[] args)
{
System.out.println("Enter a number: ");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println("Factorial of " + n + " is " + Recursion.factorial(n));
}
}
public class Recursion
{
public static int factorial(int n)
{
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
Normalement comme je l'ai mis, tu n'a pas besoin de la boucle.
PS: Fais attention aussi à la présentation de ton code.
Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Déplacement vers un forum plus approprié
Le sujet est déplacé de la section Javascript vers la section Langage Java
Pas d'aide concernant le code par MP, le forum est là pour ça :)
package hello;
import java.util.Scanner;
public class Factorial
{
public static void main(String[] args)
{
System.out.println("Enter a number: ");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println("Factorial of " + n + " is " + Recursion.factorial(n));
}
}
class Recursion
{
public static int factorial(int n)
{
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
Ça marcherait aussi sans. En déclarant la méthode statique dans la classe Factorial. Elle n'a pas besoin d'être publique.
public class Factorial
{
public static void main(String[] args)
{
System.out.println("Enter a number: ");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.format("Factorial of %d is %d\n",
n, factorial(n));
}
static int factorial(int n)
{
return foo(1, n);
}
// foo(p, n) == p * factorial(n)
static int foo(int p, int n) {
return n == 0
? p
: foo(n * p, n - 1);
}
}
Avec en bonus
utilisation d'un format
récursion terminale avec utilisation d'une fonction auxiliaire avec une variable tampon
expression conditionnelle
- Edité par michelbillaud 27 mars 2023 à 13:00:33
factoriel en java avec recurcivite
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
Pas d'aide concernant le code par MP, le forum est là pour ça :)