[백] 2231 분해합

serotonins·2022년 9월 17일
0

Coding Q

목록 보기
10/17

넣어보면 좋을 예


입력 1 결과 0
입력 100000 결과 99959
입력 1000000 결과 0

역시 엣지 케이스가 짱

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <malloc.h>

char min=0;
int n=0, m = 1,  jari = 0, sum=0, k = 0, ten=1000000; 

int main()
{
	scanf("%d", &n);

	for (char i = 6; i >= 0; i--) {
		if (n / ten) { jari = i; break; }//뒤에 붙은 0의 갯수
		ten = ten / 10;
	}
	
	for (char j = 0; j <= jari; j++) min += 9;

	for (k = n - min; k <= n; k++) {
		sum = k; ten = 1; 
		for (char j = 1; j <= jari+1; j++) {
			sum += (k % (ten * 10)) / ten;
			ten = ten * 10;
		}
		
		if (sum == n) { break; }
		else if (k >= n) { k = 0; break; }
	}

	printf("%d\n", k);

	for (int i = 0; i < 3; i++) getchar();
	return 0;
}

0개의 댓글