방법은 다음과 같습니다.
(추천 튜토리얼: java 강좌)
1. 무차별 대입 솔루션
for 루프를 사용하여 하나씩 직접 해결하면 알고리즘 복잡도는 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. 흐름 프로그래밍
은 무차별 솔루션과 동일하지만 코드가 적고 읽기 쉬운 선언적 흐름 프로그래밍을 사용합니다.
/** * <p>流式编程</p> * @param startInclusive * @param endExclusive * @return */ public int sumByStream(int startInclusive, int endExclusive){ return IntStream.range(startInclusive, endExclusive).sum(); }
3 합산 공식을 사용하세요. 산술 수열 합산 공식
복잡성은 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 public void Test() { System.out.println("sumByDirect=" + sumByDirect(1, 101)); System.out.println("sumByStream=" + sumByStream(1, 101)); System.out.println("sumByFormula=" + sumByFormula(1, 101)); }
sumByDirect=5050 sumByStream=5050 sumByFormula=5050
위 내용은 Java에서 100 내의 양의 정수 합계를 계산하는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!