티스토리 뷰
반응형
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
예제입력
110
예제 출력 1 복사
99
예제 입력 2 복사
1
예제 출력 2 복사
1
예제 입력 3 복사
210
예제 출력 3 복사
105
예제 입력 4 복사
1000
예제 출력 4 복사
144
예제 입력 5 복사
500
예제 출력 5 복사
119
#include <iostream>
using namespace std;
int check(int n)
{
int bak, sib, ill;
int count = 0;
if (n < 100)
return n;
for (int i = 100; i <= n; i++)
{
bak = i / 100;
sib = (i % 100) / 10;
ill = (i % 10);
if (bak - sib == sib - ill)
count++;
}
return 99+count;
}
int main(void)
{
int input = 0;
cin >> input;
cout << check(input) << endl;
return 0;
}
한수구하기
123이라는 숫자가 있으면
1과 2의 차이는 1이고, 2와 3의 차이는 1이다. 그렇기에 이 숫자는 한수이다.
하지만 1~99까지는 모두 한수이다.
22는 0으로 그 차이가 같다. 그렇기에 3자리수만 잘 신경써주면 이 문제를 해결할 수 있다.
세번째 자리수, 두번째 자리수, 첫째 자리수를 각각 구해서
세번째 -두번째 = 두번째 -첫째가 발견되면 count++을 한다.
그렇게 구한 값에 1~99의 99를 더해 출력을 한다.
반응형
'프로그래밍 > 백준 문제풀이' 카테고리의 다른 글
2675 문자열 반복 C/C++ (0) | 2022.05.02 |
---|---|
백준 10809번 알파벳 찾기 C/C++ (0) | 2022.04.17 |
11720 숫자의 합 (0) | 2022.04.16 |
11654 아스키 코드 (0) | 2022.04.16 |
4673 셀프 넘버 (0) | 2022.04.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C/C++
- 열혈프로그래밍
- C
- 오블완
- Python
- 일본어
- 인지부조화
- 류근관
- 여인권
- K-MOOC
- 코딩테스트
- 보세사
- 파이썬
- 통계학
- EBS
- 일문따
- 심리학
- 회계
- 윤성우
- c++
- 티스토리챌린지
- jlpt
- 데이터분석
- 뇌와행동의기초
- 사회심리학
- 통계
- stl
- 백준
- 일본어문법무작정따라하기
- 인프런
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함
반응형