2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
풀이 과정
N의 분해합
- N과 N을 이루는 각 자리수의 합
- M의 분해합이 N인 경우, M을 N의 생성자라 함
- 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램 작성
- 정수의 각 자리수의 합을 구하는 digitsum 메서드 작성
- 입력값 n 보다 작을때까지 반복문을 돌려 수와 수의 각 자리수의 합이 n과 같으면 배열에 담기
- 배열 중 최소값 출력
- boolean형 변수 check를 만들어서 생성자가 없는 경우에는 0 출력
정답
import java.util.Scanner;
//가장 작은 생성자
public class Main {
static int digitsum(int a)
{
int dsum = 0;
while(a!=0)
{
dsum +=a%10;
a/=10;
}
return dsum;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum =0;
int s [] = new int[10000];
int index=0;
boolean check = false; //생성자 유무 체크
for(int i=0; i<n; i++)
{
sum = i+digitsum(i);
if(sum==n)
{
s[index] = i;
index++;
check=true;
}
}
if(check)
{
System.out.println(s[0]); //생성자 중 최솟값 출력
}
else
{
System.out.println(0);
}
}
}
'Java > 백준' 카테고리의 다른 글
[JAVA] 백준 25305 커트라인 (0) | 2024.02.06 |
---|---|
[JAVA] 백준 2587 대표값2 (1) | 2024.02.06 |
[JAVA] 백준 2750 수 정렬하기 (1) | 2024.02.06 |
[JAVA] 백준 1436 영화감독 숌 (1) | 2024.02.06 |
[JAVA] 백준 19523 수학은 비대면 강의입니다 (1) | 2024.02.05 |