사자자리
[C언어] 백준 1356번: 유진수 본문
https://www.acmicpc.net/problem/1356
1356번: 유진수
첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다 작거나 같은 자연수이다.
www.acmicpc.net
유진수: 어떤 수를 10진수로 표현한 뒤, 그 수를 두 부분으로 나눴을 때 (앞부분 자리수의 곱) = (뒷부분 자리수의 곱)
1236의 경우
1 ≠ 2 * 3 * 6
1 * 2 ≠ 3 * 6
1 * 2 * 3 = 6 → 유진수
#include <stdio.h>
#include <string.h>
int main(){
int len, left, right;
int judge = 0;
char num[11];
scanf("%s", num);
len = strlen(num);
if (len == 1){ //앞부분과 뒷부분으로 나눌 수 없으므로 무조건 NO
printf("NO");
return 0;
}
for (int i = 0; i < len - 1; i++){
left = 1;
right = 1;
for (int j = 0; j <= i; j++)
left *= num[j] - '0'; //앞부분 자릿수의 곱
for (int j = i + 1; j < len; j++)
right *= num[j] - '0'; //뒷부분 자릿수의 곱
if (left == right){ //(앞부분 자릿수의 곱) = (뒷부분 자릿수의 곱)
judge = 1;
break;
}
}
if (judge) printf("YES");
else printf("NO");
return 0;
}
'C언어 > C언어 문제' 카테고리의 다른 글
[C언어] 백준 2914번: 저작권 (0) | 2022.08.03 |
---|---|
[C언어] 백준 1371번: 가장 많은 글자 (0) | 2022.07.31 |
[C언어] 백준 1296번: 팀 이름 정하기 (0) | 2022.07.24 |
[C언어] 백준 1259번: 팰린드롬수 (0) | 2022.07.24 |
[C언어] 백준 1547번: 공 (0) | 2022.07.15 |
Comments