반응형
[1] 백준 카테고리
단계별로 풀어보기
함수
3단계 1065번 문제
한수
https://www.acmicpc.net/problem/1065
[2] 문제
1. 입력
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
2. 출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
3. 예제 입력 1
110
4.예제 출력 1
99
5. 예제 입력 2
1
6. 예제 출력 2
1
[3] 정답
1. 정답 해설 미포함
package test_p1;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print(math(in.nextInt()));
in.close();
}
public static int math(int num) {
int count = 0; // 한수 카운팅
if (num < 100) {
return num;
}
else {
count = 99;
if (num == 1000) { // 예외처리 필수
num = 999;
}
for (int i = 100; i <= num; i++) {
int h = i / 100; // 백의 자릿수
int t = (i / 10) % 10; // 십의 자릿수
int o = i % 10;
if ((h - t) == (t - o)) { // 각 자릿수가 수열을 이루면
count++;
}
}
}
return count;
}
}
2. 정답 해설 포함
package test_p1;
import java.util.Scanner;
// java.util.Scanner를 import 한다.
public class Main {
// 접근제어자 public으로 Main class를 선언한다.
public static void main(String[] args) {
// 접근제어자 public으로 메모리에 상주하고 리턴 값이 없이 main 함수를 선언
Scanner in = new Scanner(System.in);
// Scanner 객체 in를 선언
System.out.print(math(in.nextInt()));
// 함수 math(in.nextInt())의 결과값을 출력
in.close();
// 객체 in 사용을 종료
}
public static int math(int num) {
// 접근제어자 public으로 메모리에 상주하게 함수 math를 선언
int count = 0; // 한수를 카운팅하는 함수를 선언하고 0으로 초기화한다
if (num < 100) {
// 변수 num이 100 이하일때 괄호안의 코드를 실행시킨다
return num;
// num 값을 return한다.
}
else {
count = 99;
// 변수 count에 값 99를 저장
if (num == 1000) { // 예외처리 필수
// 변수 num에 저장된 값이 1000이면 괄호안의 코드를 실행
num = 999;
}
for (int i = 100; i <= num; i++) {
// for문 선언
int h = i / 100;
// 변수 h를 선언 백의 자릿수를 구한다.
int t = (i / 10) % 10;
// 변수 t를 선언 십의 자릿수를 구한다.
int o = i % 10;
// 변수 o를 선언 일의 자릿수를 구한다.
if ((h - t) == (t - o)) {
// 백의 자리와 십의 자리의 차와 십의 자리와 일의 자리의 차가 수열을 이루면
count++;
// count 변수에 저장된 값이 1이 증가한다.
}
}
}
return count;
// count 변수에 저장된 값이 return 된다.
}
}
반응형
'프로그래밍 > 백준 문제 풀이(자바)' 카테고리의 다른 글
백준 11720번 자바 문제 답/해설(숫자의 합 문제) (0) | 2021.12.03 |
---|---|
백준 11654번 자바 문제 답/해설(아스키 코드 문제) (0) | 2021.12.02 |
백준 4673번 자바 문제 답/해설(셀프 넘버 문제) (0) | 2021.11.29 |
백준 15596번 문제 자바 답/해설(정수 N개의 합) (0) | 2021.11.28 |
백준 4344번 문제 자바 답/해설(평균은 넘겠지 문제) (0) | 2021.11.28 |