[코드업] 1038 정수 2개 입력받아 합 출력하기1

Coastby·2022년 10월 9일
0

코딩테스트

목록 보기
4/11

문제

정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자.

(단, 입력되는 정수는 -1073741824 ~ 1073741824 이다.)

입력

2개의 정수가 공백으로 구분되어 입력된다.
** 주의 : 계산의 결과가 int 범위를 넘어가는지를 잘 생각해 보아야 한다.

출력

두 정수의 합을 출력한다.

입력 예시

123 -123

출력 예시

0

풀이

처음 답안

public class CU1038 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(a+b);

    }
}
>>> 1073741824 1073741824
-2147483648

이렇게 나와버림

처음에 a, b의 범위가 int에 들어가니 괜찮을거라 생각했지만, 둘을 더했을 때 int의 최대 범위가 넘어가는 것은 생각하지 못했다. 그래서 합을 long으로 받아서 출력하도록 변경하였다.

		int a = sc.nextInt();	//1073741824
        int b = sc.nextInt();	//1073741824
        long c = a + b;			//-2147483648

        System.out.println(a+b);

그랬더니 int + int의 연산이므로 int의 결과가 나오고 이를 long으로 받는 구색이 되어버려서 의미가 없어졌다. 입출력의 결과는 같았다.
그래서 두 입력을 저장도 long으로 받아서 출력하는 방법으로 바꾸었다.

최종 제출

import java.util.Scanner;

public class CU1038 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long a = sc.nextInt();
        long b = sc.nextInt();
        System.out.println(a+b);

    }
}

nextInt()로 받은 이유는 어차피 int 범위 내의 수를 받기 때문이다.

profile
훈이야 화이팅

0개의 댓글