1 부터 100 까지 화합 을 구 하 는 세 가지 서법
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails Turbolinks를 페이지 단위로 비활성화하는 방법원래 Turobolinks란? Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고, 이동한 페이지를 Ajax에서 가져옵니다. 그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.