본문 바로가기
JAVA

자바 스캐너 문제 3자리 정수를 키보드에서 읽어서 더하라.

by helloissue 2021. 12. 30.

자바 스캐너의 연습문제입니다.  0과 1000 사이의 3자리 정수를 키보드에서 읽어, 정수의 각 자리의 수를 모두 더한 값을 출력하시오 ( '%', '/' 연산자를 활용하세요)  결과 : 873를 읽은 경우, 모두 더한 값 : 8 + 7 + 3 = 18

 

 

1. 연산자가 어떻게 쓰이는지 알아보자.

 

먼저 이 연산자가 마이너스 연산자인지?,나눗셈 연산자, 몫 연산자 인지는 중요하지 않습니다. 연산자를 직접 대입을 해보고 어떤 기능을 하는지 적어두고, 각 기능을 중심으로  접근을 하면 쉽습니다. 

1
2
3
4
System.out.println(873 % 10);      //3  [ 세번째 숫자만 가져오기]
System.out.println(873 / 10);      //87 [ 가운데 숫자를 가져오기위한 첫번째 단계]
System.out.println(873 / 10 /10);   //8  [ 첫번째 숫자만 가져오기]
System.out.println((873 / 10) % 10);//7  [ 가운데 숫자만 가져오기]
cs

'%10'의 기호를 썼을 땐 제일 마지막 글자 한 개만 가져옴을 알 수 있습니다.  3 자릿수를 입력받아서 각 자릿수를 가져올 때 제일 마지막에 위치시킨다면 가져올 수 있습니다.

 

'/10' 기호와 함께 섰을땐 원본 글자의 마지막 글자 한 개를 지운 뒤에 가져오는 것을 알 수 있습니다. 

예를 들면 123/10 > 12를 가져오게 할 수 있습니다. 따라서 이두 기호를 조합한다면 숫자가 여러 개라도 한자리 한자리 가져올 수 있습니다. 가운데 글자를 가져오기 위해서는 '/10'를 두 번 호출했더니 수월해졌습니다.

 


2. 스캐너 입력 


키보드에서 입력을 받으려면 스캐너라는것을 쓰면 됩니다.

1
2
3
4
5
6
7
8
9
java.util.Scanner scan = new java.util.ScannerSystem.in );
        
System.out.print("3자리숫자 입력하셔 ? ");
int i숫자             = scan.nextInt();
 
int iA = i숫자 % 10;
int iB = i숫자 / 10 / 10;
int iC = (i숫자 / 10) % 10;
System.out.println(iA+iB+iC);     // 13 
cs

 

첫 번쨰 탭에서는 각 자릿수를 가져왔고, 두 번째에서는 스캐너라는 것을 통해 사용자로부터 입력하는 것이 가능해졌습니다. 이 두 가지를 조합하여 '+' 덧셈을 하였더니 문제에서 요구한 각 자릿수를 더하여 출력이 되었습니다.

 

자바스캐너 사용법이 익숙하지 않으시다면 하단의 링크를 참조하시길 바랍니다.

자바 스캐너 사용법 ( java scanner ) 정리

 

자바 스캐너 사용법 ( java scanner ) 정리

자바 스캐너는 가장 쉽게, 사용자로부터 문자열 또는 숫자 열등의 사용자 입력을 받을 수 있게 하는 클래스입니다. 즉 스캐너만 있다면 사용자의 입력을 받을 수 있습니다. 이런 스캐너를 이용

sayit.tistory.com

 

댓글