728x90
반응형
SMALL
📌문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
📌입력
📌출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
📌코드
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(arithmetic_sequence(sc.nextInt()));
sc.close();
}
private static int arithmetic_sequence(int num) {
// int num을 인자로 받는 arithmetic_sequence 라는 함수 선언
int cnt =0;
// 한수의 개수 변수선언
if( num < 100) {
// 입력받는 num이 100보다 작을 경우
return num;
// num을 return해준다.
}
else {
cnt =99;
// 만약에 입력받는 수가 100보다 크다면
// 한수의 개수를 99로 초기화 해주고
// (즉, 한수의 개수는 99부터 시작하는 거임)
for(int i=100; i<=num; i++) {
// 100부터 시작해 입력받는 수까지 반복하여 한수의 개수를 세어준다.
// 이때, 자릿수를 변수로 둔다
int hun = i /100; // 백의 자릿수(몫)
int ten = (i/10) % 10; // 십의 자릿수
int one = i %10; // 일의 자릿수 (나머지)
if((hun - ten ) == (ten - one)) {
// 각 자릿수가 수열을 이룬다면
// 등차수열이기에 순서대로 감해준다.
cnt++;
//한수의 개수를 늘린다.
}
}
}
return cnt;
// 한수의 개수를 리턴한다.
}
}
728x90
반응형
LIST
'Algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 문자열 2단계 -11720번 숫자의 합(JAVA) (0) | 2022.07.05 |
---|---|
[백준알고리즘] 문자열 1단계 -11654번 아스키 코드(JAVA) (0) | 2022.07.04 |
[백준알고리즘] 함수 2단계 -4673번 셀프 넘버(JAVA) (0) | 2022.06.30 |
[백준알고리즘] 함수 1단계 -15596번 정수 N개의 합(JAVA) (0) | 2022.06.29 |
[백준알고리즘] 1차원 배열 7단계 -4344번 평균은 넘겠지(JAVA) (0) | 2022.06.28 |