1 부터 100 까지 화합 을 구 하 는 세 가지 서법

6551 단어 #JAVASE자바
글 목록
  • 1. 폭력 해법
  • 2. 스 트림 프로 그래 밍
  • 3. 구 화 공식 이용
  • 4. 테스트


  • 1. 폭력 해법
    사용 for 순환 을 직접 하나씩 풀 고 알고리즘 복잡 도 는 O (n) O (n) O (n) O (n)
        /**
         * 

    * @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. 스 트림 프로 그래 밍
    폭력 해법 과 마찬가지 로 성명 식 스 트림 프로 그래 밍 을 사용 하여 코드 양 이 적 고 가 독성 이 있 습 니 다.
        /**
         * 

    * @param startInclusive * @param endExclusive * @return */
    public int sumByStream(int startInclusive, int endExclusive){ return IntStream.range(startInclusive, endExclusive).sum(); }

    3. 구 와 공식 활용
    등차 수열 구 와 공식 S n = (a 1 + a 2)× n 2 S_n=\cfrac{(a_1+a_2)\times n}{2} Sn​=2(a1​+a2​)×복잡 도 는 O (1) O (1) O (1) O (1)
        /**
         * 

    * @param startInclusive * @param endExclusive * @return */
    public int sumByFormula(int startInclusive, int endExclusive){ return ((startInclusive + endExclusive - 1) * (endExclusive - startInclusive) ) >> 1; }

    4. 테스트
        @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
    

    좋은 웹페이지 즐겨찾기