문제-
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
입력-
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력-
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
해설-
99이하의 숫자들은 한수이고, 100 이상의 숫자들은 각 자릿수의 차가 일정하여야 하므로 조건문을 소스코드와 같이 걸어준다.
소스코드-
def hansu(a):
array = list(str(a))
if(a<=99):
return 1
elif(int(int(array[0]) - int(array[1])) == int(int(array[1]) - int(array[2]))):
return 1
else:
return 0
cnt = 0
user = int(input())
for i in range (1, user+1):
if(hansu(i)==1):
cnt += 1
print(cnt)
'프로그래밍 > 백준' 카테고리의 다른 글
Python 백준 11720 숫자의 합 (0) | 2021.02.05 |
---|---|
Python 백준 11654 아스키 코드 (0) | 2021.02.05 |
Python 백준 4673 셀프 넘버 (0) | 2021.02.04 |
Python 백준 15596 정수 N개의 합 (0) | 2021.02.04 |
Python 백준 4344 평균은 넘겠지 (0) | 2021.02.04 |