Probleme java

Fermé
svenstek Messages postés 5 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 17 mars 2010 - 3 mai 2009 à 13:00
togodo Messages postés 148 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 19 août 2009 - 3 mai 2009 à 20:37
Bonjour,
je dois coder un programme qui calcule la somme des n premiers terme de la série harmonique (n donné) c'est à dire qu'on rentre la valeur de n et la somme sera égale à S=1+1/2+1/3+....+1/n
j'ai réussi à écrire un code qui affiche la somme le voici :

double S=0;
int n=0;
System.out.println("veuillez entrez la valeur de n");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
for(float i=1; i<=n;i++) {
S=S+(1/i); }
System.out.println(S); // nous affiche la valeur de S
tout est bon mais le probleme c'est que je dois afficher à l'ècran par exemple (on prend n=3) :
S=1+1/2+1/3=1.83 j'arrive à afficher S=1.83 mais le S=1+1/2+1/3 je vois pas comment faire pouvez vous m'aider !! merci d'avance
A voir également:

2 réponses

daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
3 mai 2009 à 15:03
Salut,

si j'ai bien compris tu cherches à afficher la formule:

et bien tu prends une variable de type String et dans la boucle tu ajoutes ton calcul à cette variable


String calc = "S = ";

for(int i=1;i<n;i++){

   S=S+(1/i);
   
   calc += "1/" + i + (i == n  ? "" : " + ");/*le test est là pour éviter de mettre un + lorsu'on est à la fin de la boucle*/
}



voilà, ce n'était pas grand chose
0
togodo Messages postés 148 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 19 août 2009 8
3 mai 2009 à 20:37
Niveau performance c'est même mieux d'utiliser un stringbuffer qu'un string ( et c'est pas bien méchant à mettre en place).
Mais bon c toi qui voit.

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/StringBuffer.html
0