La méthode est la suivante :
(Tutoriel recommandé : cours java)
Solution brutale
Utilisez la boucle for pour résoudre directement le problème un par un, la complexité de l'algorithme est O ( n ) O(n)O(n)
/** * <p>暴力解法</p> * @param startInclusive * @param endExclusive * @return */ public int sumByDirect(int startInclusive, int endExclusive){ int sum = 0; for (int i = startInclusive; i < endExclusive; i++) { sum += i; } return sum; }
2 La programmation de flux
est la. identique à la solution par force brute, mais utilise des déclarations Un type de programmation de flux avec moins de code et plus de lisibilité
/** * <p>流式编程</p> * @param startInclusive * @param endExclusive * @return */ public int sumByStream(int startInclusive, int endExclusive){ return IntStream.range(startInclusive, endExclusive).sum(); }
3 Utilisez la formule de sommation
Utilisez la formule de sommation de séquence arithmétique
<.>complexe Le degré est O ( 1 ) O(1)O(1)/** * <p>利用求和公式</p> * @param startInclusive * @param endExclusive * @return */ public int sumByFormula(int startInclusive, int endExclusive){ return ((startInclusive + endExclusive - 1) * (endExclusive - startInclusive) ) >> 1; }Test :
@Test public void Test() { System.out.println("sumByDirect=" + sumByDirect(1, 101)); System.out.println("sumByStream=" + sumByStream(1, 101)); System.out.println("sumByFormula=" + sumByFormula(1, 101)); }Résultat de sortie :
sumByDirect=5050 sumByStream=5050 sumByFormula=5050Recommandations associées :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!