Probleme java

svenstek Messages postés 6 Statut Membre -  
togodo Messages postés 147 Date d'inscription   Statut Membre -
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
Configuration: Windows Vista
Firefox 3.0.10

2 réponses

  1. daronmaster Messages postés 326 Date d'inscription   Statut Membre Dernière intervention   44
     
    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
  2. togodo Messages postés 147 Date d'inscription   Statut Membre 8
     
    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