본문 바로가기
코테 문제

[백준] 1065번: 한수

by 케찹이 2020. 4. 16.

질문: 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

 

입력: 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

 

출력: 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

 

예를 들어서 

입력: 110      출력: 99

입력: 1000    출력: 144

 

#include<stdio.h>

int main(){
	int N,i;
	int tens_digit,hundred_digit,one_digit;
	int han_num = 0;
	scanf("%d",&N);
	
	if(N<=99){
		han_num = N;
	}
	else{
		han_num = 99;
		for(i=100;i<=N;i++){
			hundred_digit = i/100;
			tens_digit = i / 10 % 10;
			one_digit = i % 10;
			if((hundred_digit-tens_digit) == (tens_digit - one_digit))
				han_num++;
		}
	}
	printf("%d",han_num);
	return 0;
}

댓글