알고리즘/백준

[백준] 1008 - A/B

leegeonwoo 2023. 10. 12. 23:54

• 문제

사칙연산중 나누기 연산을 계산하는 프로그램 문제이다.


• 풀이

덧셈, 나눗셈, 뺄셈 처럼 사칙연산이라고 먼저나왔던 사칙연산 문제들처럼 풀경우 원하는 출력값을 얻을 수 없을 것이다.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		System.out.print(A/B);
		}
}

나눗셈을 할 때, 4 / 2 = 2와 같이 몫이 나머지 없이 딱 떨어지는 경우도 있지만 값이 딱 떨어지지않고 나머지가 생기는 경우도 있다.

이 때 자바에서는 나머지를 어떻게 처리할까?

 

먼저 우리가 지금까지 사용한 변수는 모두 int타입으로 정수형이다. 말그대로 변수안에 정수만 담을 수 있고 소수는 담을 수 없다.

나눗셈과같이 소수점이 생기는 경우에는 변수를 int타입이아닌 float또는 double타입으로 선언해주어야한다.

만약, 10 / 4의 값을 int타입변수에 저장하게되면 2.5의 5는 버리고 정수인 2만 저장하게된다.

int타입 변수지정 결과값

 


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		double A = sc.nextInt();
		double B = sc.nextInt();
		System.out.print(A/B);
		}
}

변수 A,B를 int타입이아닌 double타입으로 변경해주면

위와 같이 옳바른 값을 얻을 수 있다.


마무리

  1. Java의 좀 더 다양한 변수타입을 알게되었다.
  2. 소수점 계산을 할 때에는 변수선정에 주의가 필요하다.

이 카테고리에서는 알고리즘 문제를 중점으로 작성하는 글이기때문에 float와 double차이는 단순히 소수점을 저장할 수 있는 범위의 차이라고만 알고 있으면 될 것 같다.

float는 소수점아래 9자리, double은 소수점아래 18자리까지 표현할 수 있다.

 

또한 형변환과같은 Java의 기초적인 특성은 배제하고 설명하였다.

728x90
댓글수0