1. % 연산자를 활용해 몫 구하기
파이썬에서는 '/'를 이용해 몫을 구하고, '%'를 이용해 나머지를 구할 수 있다.
자바는 '%'를 이용해 나머지는 구할 수 있지만 몫을 구할 수가 없다. 자바의 '/'는 그냥 나눗셈을 해버린다.
따라서 나눗셈을 한 다음 정수로 형변환(int) 하면 몫을 구할 수 있다.
import java.util.Scanner;
public class quotient {
public static void main(String[] args) {
System.out.println("나누고 싶은 수를 정수로 입력해주세요.");
Scanner s = new Scanner(System.in);
double divided = s.nextDouble();
System.out.println("몇으로 나누겠습니까? (정수로 입력해주세요.)");
double divisor = s.nextDouble();
int quotient = 0;
double remainder = 0;
if (divisor != 0) {
quotient = (int)(divided / divisor);
remainder = divided % divisor;
System.out.println(divided + "를 " + divisor + "로 나눈몫은 " + quotient + "이고 나머지는 " + remainder + "입니다." );
} else {
System.out.println("0으로 나눌 수 없습니다.");
}
}
}
결과 :
나누고 싶은 수를 정수로 입력해주세요.
7
몇으로 나누겠습니까? (정수로 입력해주세요.)
2
7.0를 2.0로 나눈몫은 3이고 나머지는 1.0입니다.
나누고 싶은 수를 정수로 입력해주세요.
300.5
몇으로 나누겠습니까? (정수로 입력해주세요.)
40.5
300.5를 40.5로 나눈몫은 7이고 나머지는 17.0입니다.
나눗셈을 할 때는 반드시 나누는 수가 0인 경우를 생각해야한다!
2. % 연산자를 이용해 특정 단위 이하의 수를 구하거나 자릿수 구하기
import java.util.Scanner;
public class thUnit {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int divided = s.nextInt();
int divisor1 = 10;
int divisor10 = 100;
int divisor100 = 1000;
int divisor1000 = 10000;
int divisor10000 = 100000;
System.out.println(divided + "의 일의 자릿수는 " + (divided % divisor1) + "입니다.\n"); // 10으로 나눈 나머지
System.out.println(divided + "의 십의 자릿수 이하는 " + (divided % divisor10) + "입니다."); // 100으로 나눈 나머지
System.out.println(divided + "의 십의 자릿수는 " + (divided % divisor10 / divisor1) + "입니다.\n"); // 100으로 나눈 나머지를 10으로 나눈 몫
System.out.println(divided + "의 백의 자릿수 이하는 " + (divided % divisor100) + "입니다."); // 1,000으로 나눈 나머지
System.out.println(divided + "의 백의 자릿수는 " + (divided % divisor100 / divisor10) + "입니다.\n"); // 1,000으로 나눈 나머지를 100으로 나눈 몫
System.out.println(divided + "의 천의 자릿수 이하는 " + (divided % divisor1000) + "입니다."); // 10000으로 나눈 나머지
System.out.println(divided + "의 천의 자릿수는 " + (divided % divisor1000 / divisor100) + "입니다.\n"); // 10,000으로 나눈 나머지를 1,000으로 나눈 몫
System.out.println(divided + "의 만의 자릿수 이하는 " + (divided % divisor10000) + "입니다."); // 100,000으로 나눈 나머지
System.out.println(divided + "의 만의 자릿수는 " + (divided % divisor10000 / divisor1000) + "입니다.\n"); // 100,000으로 나눈 나머지를 10,000으로 나눈 몫
}
}
결과 :
68574
68574의 일의 자릿수는 4입니다.
68574의 십의 자릿수 이하는 74입니다.
68574의 십의 자릿수는 7입니다.
68574의 백의 자릿수 이하는 574입니다.
68574의 백의 자릿수는 5입니다.
68574의 천의 자릿수 이하는 8574입니다.
68574의 천의 자릿수는 8입니다.
68574의 만의 자릿수 이하는 68574입니다.
68574의 만의 자릿수는 6입니다.
3. 범위를 제한하는데 활용할 수 있다.
% 3 으로 범위 제한 : 012 012 012 012 AAA AAA AAA AAA
% 5 으로 범위 제한 : 01234 01234 01234 AAAAA AAAAA AAAAA
'개발자 > Java' 카테고리의 다른 글
Java (자바) 가위, 바위, 보 (0) | 2020.03.29 |
---|---|
Java (자바) 학점 산출, 주사위 굴려 의성어 출력 (0) | 2020.03.29 |
Java (자바) 1~100 합, 홀수합, 짝수합 구하기 (0) | 2020.03.29 |
Java (자바) 형변환 그리고 나눗셈 (0) | 2020.03.28 |
Java (자바)의 자료형 및 범위 (0) | 2020.03.27 |