여기 데모는 1,2,3,4...n과 같은 누적 알고리즘입니다.
즉, 합 = 1+2+3+4...+n;
우리는 이것을 할 수 있습니다:
for (long i = 1,v = 값; i <= v; i++) {
합계 += i;
}
반환 금액;
}
/**
* 누적 알고리즘 구현<br>
*
* @날짜 2013-4-16
* @author 홍텐
*
*/
공개 클래스 AddArithmetic {
/**
* 누적 방식을 구현하는 루프
* @param 값
* @반품
*/
개인 정적 긴 주기(긴 값) {
장합 = 0;
for (long i = 1,v = 값; i <= v; i++) {
합계 += i;
}
반환 금액;
}
/**
* 가우스 방법:<code>(n+1)*n/2</code><br>
* <a href="http://zhidao.baidu.com/question/411055258.html">여기</a>에서 자세한 내용을 읽어보실 수 있습니다.
* @param 값
* @반품
*/
개인 정적 긴 가오시(긴 값) {
장합 = 0;
합계 = (값 + 1) * 값 / 2;
반환 금액;
}
공개 정적 무효 메인(String[] args) {
//메모리를 정리하지만 실행되지 않을 수 있습니다.
시스템.gc();
// 값을 변경해야 다른 결과를 얻을 수 있습니다.
긴 값 = 10000000;
장합 = 0;
긴 시작 = System.currentTimeMillis();
합계 = 주기(값);
긴 끝 = System.currentTimeMillis();
System.out.println("루프 누적 방법을 사용하여 [1]에서 ["+value+"]까지 누적하고 소요 시간: ["+(end - start) + "]ms, 결과: "+ sum);
//메모리를 정리하지만 실행되지 않을 수 있습니다.
시스템.gc();
시작 = System.currentTimeMillis();
합계 = 가오시(값);
end = System.currentTimeMillis();
System.out.println("가우스 방법을 사용하여 [1]에서 ["+value+"]까지 누적, 소요 시간: ["+(end - start) + "]ms, 결과: "+ sum);
}
}
물론, 구성이 다른 기계의 실행 결과는 다릅니다...
내 컴퓨터의 작동 상태: