본문 바로가기

algorithm/백준알고리즘

[백준알고리즘] 1065번: 한수 -C++

728x90

[백준알고리즘] 1065번: 한수 -C++

1065번: 한수 (acmicpc.net)

 

1065번: 한수

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

www.acmicpc.net

정말 오랜만에 한수 문제를 풀었다.

 

100 미만은 무조건 등차수열이고, 1000은 등차수열이 아니다.

나머지 3자리 숫자에 대해 등차수열을 이루는 지만 확인해주면 된다.

 

# include <iostream>

int main(void)
{
	int n;
	std::cin >> n;

	int answer = 0;
	for (int i = 1; i <= n; i++)
	{
		if (i < 100)
		{
			answer += 1;
			continue;
		}
		if (i == 1000) continue;

		int num[3] = { 0, };
		int t = i;
		for (int j = 0; j < 3; j++)
		{
			num[j] = t % 10;
			t /= 10;
		}

		if (num[0] - num[1] == num[1] - num[2]) answer += 1;
	}

	std::cout << answer;
	return 0;
}

 

잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다

728x90