강의로 돌아가기
정승한

[java] 테스트 4에서 10까지 실패합니다. 피드백좀 부탁드려요

등차수열의 합 공식을 이용해서 하는데 테스트 4에서 10까지 실패하네요

작성중인 코드―Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Solution {
  public long solution(int a, int b) {
      long answer = 0;

      /* 
      if(a == b){
          answer = a; // a와 b가 같으면 a를 반환
      }
      else if(a > b){
          int i = b;
          while(i <= a){
              answer+=i;
              i++;
          } 
      } // a가 b보다 크면은 b부터 a까지 다 더한다.
      else if(a < b){
          int i = a;
          while(i <= b){
              answer+=i;
              i++;
          }
      } // b가 a보다 크면은 a부터 b까지 다 더한다.
      */
      int n = Math.abs(a-b)+1; // 항의 개수
      answer = (a + b) * n / 2;
      // 수열의 합의 공식을 이용하면 한 줄에 끝!
      return answer;
  }
}
1 개의 답변
Demi

안녕하세요. 힌트를 드리자면 (a + b) * n / 2;에서 오버플로우가 납니다.

  • 문경원
    힌트 감사합니다. 피 연산자들의 타입 중요성 문경원 2019.04.30 12:48
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.