백준 2231 c++

magicdrill·2024년 3월 6일
0

백준 문제풀이

목록 보기
107/654

백준 2231 c++

#include <iostream>

using namespace std;

int input(int lower, int upper);
int bruteforce_division_sum(int n);
void make_N_to_arr(int n, int* arr);

int main(void)
{
	int N;
	N = input(1, 1000000);
	cout << bruteforce_division_sum(N) << endl;

	return 0;
}

int input(int lower, int upper)
{
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

int bruteforce_division_sum(int n)
{
	int constructor = 0;
	int sum  = 0, div = 1000000;;
	int i, j;
	int arr[7];

	for (i = 1; i < n; i++)
	{
		sum = 0;
		make_N_to_arr(i, arr);
		for (j = 0; j < 7; j++)
		{
			sum = sum + arr[j];
		}
		sum = sum + i;
		if (sum == n)
		{
			constructor = i;
			break;
		}
		else
		{
			constructor = 0;
		}
	}

	return constructor;
}

void make_N_to_arr(int n, int* arr)
{
	int i, div = 1000000;;

	for (i = 0; i < 7; i++)
	{
		arr[i] = n / div;
		n = n % div;
		div = div / 10;
	}

	return;
}

0개의 댓글