https://www.acmicpc.net/problem/1356
유진수란 10진수 정수에서 두 부분으로 나누어 각각의 자리수를 곱했을 때 둘이 같은 수일 때 유진수라고 한다.
예를들어 1236은 123 / 6으로 나누면 6으로 같기 때문에 유진수이다. 또한 1221도 유진수이다. 하지만 1234는 유진수가 아니다.
이 문제를 풀면서 간과했던 한가지가, 한자리 숫자는 유진수로 취급하지 않는다는 것이다. 이를 몰라서 왜 틀렸지 하다가 계속 틀렸다.
#include <stdio.h>
#include <string.h>
int main () {
char ch[11];
int len;
int n1, n2;
int i, j;
scanf("%s", ch);
len = strlen(ch);
if (len == 1) {
printf("NO");
} else {
for (i = 0; i < len-1; i++) {
n1 = 1; n2 = 1;
for (j = 0; j <= i; j++)
n1 *= ch[j] - '0';
for (j; j < len; j++)
n2 *= ch[j] - '0';
if (n1 == n2) break;
}
printf(n1 == n2 ? "YES" : "NO");
}
return 0;
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 2751번 C언어 풀이 (0) | 2021.10.26 |
---|---|
백준 2750번 C언어 풀이 (0) | 2021.10.26 |
백준 9037번 C언어 풀이 (0) | 2021.10.07 |
백준 5086번 C언어 풀이 (0) | 2021.10.07 |
백준 4892번 C언어 풀이 (0) | 2021.10.07 |