반응형
[ 문제 ]
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.
자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.
[ 코드 ]
using System;
class MainClass
{
public static int DecompositionSum(int number)
{
int sum = 0;
while (number > 0)
{
sum += number % 10;
number /= 10;
}
return sum;
}
public static int FindGenerator(int n)
{
for (int i = 1; i < n; i++)
{
if (i + DecompositionSum(i) == n)
{
return i;
}
}
return 0;
}
public static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int generator = FindGenerator(n);
Console.Write(generator);
}
}
[ 풀이 ]
i와 i를 분해합 시킨걸 더한게 n과 같을 때 i를 출력하는 코드.
만약 없으면 0을 반환해서 출력한다.
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/2231
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 15894번 수학은 체육과목 입니다. (0) | 2024.02.12 |
---|---|
[C#] 백준 3009번 네 번째 점 (2) | 2024.02.12 |
[C#] 백준 11653번 소인수분해 (0) | 2024.02.11 |
[C#] 백준 9506번 약수들의 합 (0) | 2024.02.11 |
[C#] 백준 1259번 팰린드롬수 (0) | 2024.02.10 |