본문 바로가기
backjoon/브루트포스

백준 2231 c언어 -분해합

by 정구지개발자 2023. 1. 5.
728x90

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

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

간단한 프루트포스 알고리즘 문제이다

1. 문제에서 주어지는 숫자로 생성자를 찾는 규칙이 없을까 생각해봤는데 없었다.

2. 생성자가 있을수도 있고 없을수도 있을뿐더러 생성자중에서 가장작은것을 출력하라고 했기 떄문이다.

3. 따라서 전략을 최소 숫자인 1부터 각자리수와 합하여 주어진 숫자와 비교해서 답을 찾는 방법을 선택했다.

나의 답안)

#include <stdio.h>

int main(void)
{
	int	i;
	int	n;
	int	result;
	int	temp;

	scanf("%d", &n);
	i = 1;
	while(i <= n)
	{
		temp = i;
		result = i;
		while(temp > 0)
		{
			result += temp % 10;
			temp /= 10;
		}
		if(result == n)
		{
			printf("%d\n", i);
			break ;
		}
		if(i == n)
		{
			printf("0");
			break;
		}
		i++;
	}
}

 

728x90

'backjoon > 브루트포스' 카테고리의 다른 글

백준 1436번 - 영화감독 숌 c언어  (0) 2023.01.08
백준 7568 - 덩치 c언어  (2) 2023.01.05
백준 2798 블랙잭 (C언어)  (0) 2023.01.01

댓글