Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
Tags
more
Archives
Today
Total
관리 메뉴

이것저것

C언어 백준 1065 - 한수 본문

Language/C언어

C언어 백준 1065 - 한수

olivia-com 2020. 11. 20. 10:02

https://www.acmicpc.net/problem/1065

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

문제

어떤 양의 정수 X의 각 자리가 등차수열을 이룰 때 그 수를 ‘한수’라 합니다.

ex) 1 : 등차수열o -> 한수o

22 : 2, 2 는 등차수열o -> 한수o

135 : 1, 3, 5 는 등차수열o -> 한수o

127 : 1, 2, 7 은 등차수열x -> 한수x

N이 주어졌을 때, 1보다 크거나 같고 N보다 작거나 같은 한수 개수를 출력하세요. (0<N<1000)

#include <stdio.h>

int HanNumber(int n);

int main() {
	int n = 0, count = 0; // n: 입력 받은 수, count: 한수의 개수  
	scanf("%d",&n);
	count = HanNumber(n);
	printf("%d\n",count);
	return 0;
}

int HanNumber(int n){
	int c = 0; // 한수 개수  
	int num[3] = {0}, a= 0;  
	int i,j;
	if(n>100){
		for(i == 100 ; i <= n ; i++){
			if(i=1000){  
				break;
			} 
			
			a = i; // i값을 a에 저장 
			
			for(j=0;j<3;j++){ // a의 각 자리 숫자를 num배열에 저장 
				num[j] = a % 10;
				a /= 10;
			}
			
			if(num[2]-num[1] == num[1] - num[0]){
				c++; // 한수일 때마다 1씩 증가 
			}
		}
		return c += 99;
	}
	else{
		return c = n;
	}
}