0
votes

Comment calculer la somme de tous les nombres de 0 à n?

Alors j'essaie de calculer tous les chiffres de 0 à un numéro donné (N) avec une boucle vue dans mon code, mais je ne peux tout simplement pas sembler gérer comment.

public static int sumOfNumbers(int... params) {

     int sum = 0;

     for (int i : params) {
         sum = i;
     };

     return sum;
}      


2 commentaires

Vous devez ajouter à somme , pas l'affecter


essayez ceci somme + = i;


8 Réponses :


5
votes

Vous écrasez somme code>, ne pas y ajouter. Vous devez utiliser l'opérateur + = code> au lieu de l'opérateur = code>: xxx pré>

Alternativement, vous pouvez traiter cela comme un problème mathématique, et Utilisez la formule pour le Somme d'une progression arithmétique : p>

public static int sumZeroToN(int n) {
    return n * (n + 1) / 2;
}


0 commentaires

0
votes
int sum = 0;
for (int i = 0; i <= n; i++) {
 sum = sum + i;
}
System.out.println(sum);

0 commentaires

2
votes

Vous pouvez utiliser somme à partir de intestream : xxx


0 commentaires

3
votes

Ceci est la somme des nombres dans une série, vous pouvez donc le faire dans O (1) en utilisant: xxx

n est le nombre le plus élevé params , paramiques étant un tableau / collection de nombres à partir de 0 à n .


0 commentaires

1
votes

Vous écrasez chaque boucle de la somme de VaR et vous oubliez de résumer, vous avez besoin de modifier votre code à quelque chose comme ceci:

public static int sumOfNumbers(int... params) {

    int sum = 0;

    for (int i : params) {
        sum += i; //Same as sum = sum + 1;
    };

    return sum;
}


0 commentaires

1
votes

Depuis que vous voulez de 0 à N, vous pouvez utiliser intestream E.g.

intbestream.Rangeclosed (0, n) .sum ()


0 commentaires

0
votes

Vous essayez de calculer une somme de série arithmétique afin que vous puissiez simplement le faire sans boucle:

somme = ((param + 1) * param) / 2;

param est le numéro donné.


0 commentaires

0
votes

Utiliser pour la boucle, pas pour chaque boucle! Pour chaque boucle, utilisez avec une liste.

int sum = n * (n + 1) / 2;


0 commentaires