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; }
8 Réponses :
Vous écrasez Alternativement, vous pouvez traiter cela comme un problème mathématique, et Utilisez la formule pour le Somme d'une progression arithmétique : p> somme code>, ne pas y ajouter. Vous devez utiliser l'opérateur
+ = code> au lieu de l'opérateur
= code>:
public static int sumZeroToN(int n) {
return n * (n + 1) / 2;
}
int sum = 0; for (int i = 0; i <= n; i++) { sum = sum + i; } System.out.println(sum);
Ceci est la somme des nombres dans une série, vous pouvez donc le faire dans O (1) en utilisant: où n code> est le nombre le plus élevé
params code>,
paramiques code> étant un tableau / collection de nombres à partir de
0 code> à
n code>. p> p> p >
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; }
Depuis que vous voulez de 0 à N, vous pouvez utiliser intestream code> E.g. p>
intbestream.Rangeclosed (0, n) .sum () code> p>
Vous essayez de calculer une somme de série arithmétique afin que vous puissiez simplement le faire sans boucle: p>
somme = ((param + 1) * param) / 2; p>
param est le numéro donné. P>
Utiliser pour la boucle, pas pour chaque boucle! Pour chaque boucle, utilisez avec une liste.
int sum = n * (n + 1) / 2;
Vous devez ajouter i> à
somme code>, pas l'affecter
essayez ceci
somme + = i; code>