IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Calculer la factorielle en java?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut Calculer la factorielle en java?
    slt je suis debutant en java e
    et je veux ecrir une classe en java qui permet calculer le factoriel d un entier . ce nombre est consideré comme !er argument de main(),il est entré par l utilisateur sur la ligne de commande , j ai essayé d ecrir 1 programme mais ca na pas marché .
    voila le programme que je propose

    Code : 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
     
        public class Factoriel {
     
     
        public static void main(String[] args) {
            int i,a,b;
     
            a=Integer.ParseInt(arg[0]);
            b=a;
                    if (a!=0)
                    {for (i=1;1<b;i++)
                         a=a*i;
                    }
            else
                    a=1;
                    System.out.println("le factde"+arg[0]+"est"+a);
     
     
        }
     
    }
    veuillez m'aidez s'il vous plait a trouver l'erreur
    merci d'avance

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    J'ai légèrement modifié ton code je pense que ça devrais marcher (je n'ai pas la possibilité de tester)
    Code : 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
     
    public class Factoriel {
     
     
    public static void main(String[] args) {
    int i,a,b;
     
    a=Integer.ParseInt(arg[0]);
    b=a;
    a=1;
    if (b!=0)
    {for (i=1;i<=b;i++)
    a=a*i;
    }
    System.out.println("le factde"+arg[0]+"est"+a);
    }
    }

  3. #3
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 11
    Par défaut
    Citation Envoyé par guigui5931 Voir le message
    J'ai légèrement modifié ton code je pense que ça devrais marcher (je n'ai pas la possibilité de tester)
    Code : 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
     
    public class Factoriel {
     
     
    public static void main(String[] args) {
    int i,a,b;
     
    a=Integer.ParseInt(arg[0]);
    b=a;
    a=1;
    if (b!=0)
    {for (i=1;i<=b;i++)
    a=a*i;
    }
    System.out.println("le factde"+arg[0]+"est"+a);
    }
    }
    J'ai vraiment esséyé votre code ,mais ça n'a pas marché
    ....je vois Que le Problème est dans (arg[0]).
    Est ce que quelqu'un pourrait m'expliquer clairement la signification des arguments de main()?

  4. #4
    Membre émérite Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class facto {
    	public static void main(String[] args){
    		int a = Integer.parseInt(args[0]);
    		int fact = 1;
    		for(int i = a; i >= 1; i--){
    			fact = fact*i;
    		}
    		System.out.println(fact);
    	}
    }
    voilà

    ton problème est simplement 'arg[0]' c'est 'args[0]'

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Par défaut
    je pense que le problem est resolu!!!

    on est pas obliger de mettre args pour le nom du tableau de String Mais c'est obligatoire d'avoir une meme syntaxe quand meme.

  6. #6
    Invité de passage
    Inscrit en
    Mars 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 1
    Par défaut
    Code : 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
    package com.ayoub;
    import java.util.Scanner;
     
    public class operat {
     
    	public static void main (String[]arg){
    		Scanner ad =  new Scanner(System.in);
    		System.out.println(" donne un entier  ");
     
    		int  a = ad.nextInt();
    		//System.out.println("vous avez tapé "+a);
     
    		if (a != 0) {
    		for (int i=a-1 ;i>=1 ;i--){
    			a=a*i;
    		}
     
    		System.out.println("donc le factoriel est =  "+a);
    		} else 
    			a=1;
    			System.out.println("le factoriel est = "+a);
     
     
    	}
    }
    voila la correction ce programme est 100% marché

  7. #7
    Invité de passage
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Par défaut pas juste
    pour les futurs lecteur de ce post,

    les résultats donnés par ces différentes versions ne sont pas bons!

    par ex:

    factoriel 14 = 87.178.291.200

    mais la dernière version donne

    1.278.945.280 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant][Conception] Factorielle en Java par recursivité
    Par Sylvester dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 02/11/2008, 20h42
  2. exception dans un calcul de factorielle
    Par ranell dans le forum Langage
    Réponses: 6
    Dernier message: 21/10/2007, 19h01
  3. Prog pour calculer la factorielle d'un nombre
    Par Lenezir dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2007, 09h42
  4. Calcul du factorielle
    Par knecmotet dans le forum C
    Réponses: 15
    Dernier message: 16/09/2005, 11h33
  5. fonction qui calcule la factorielle ?
    Par piff62 dans le forum C
    Réponses: 8
    Dernier message: 27/02/2005, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo