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'affecteressayez ceci
somme + = i; code>