어떤 수를 10진수로 표현한 후 그 수를 두 부분으로 나눠 각 부분의 자리수의 곱이 일치하는 경우가 존재하는 수를 출력한다.
유진이란 말을 듣고 떠오른건 미스터 션샤인의 유진 초이...
주어지는 수를 통해 두 부분으로 나눈 후 각 자리의 곱이 일치하는 경우가 존재하면 그 수는 유진수이고 YES로 출력한다. 반대의 경우는 NO
주어진 수를 각 자리로 나누어 배열에 저장한 후 범위를 나눠 곱해 일치 하는지를 확인 하는 방법으로 구현했다.
#include <iostream>
using namespace std;
const int MAX = 10;
char input[MAX + 1];
int len;
bool yuZin(int cut)
{
int left = input[0] - '0';
int right = input[cut] - '0';
for (int i = 1; i < cut; i++)
left *= input[i] - '0';
for (int i = cut + 1; i < len; i++)
right *= input[i] - '0';
return left == right;
}
int main()
{
cin >> input;
bool check = false;
while (input[len] != '\0')
len++;
for (int i = 1; i < len; i++)
check |= yuZin(i);
if (check)
cout << "YES";
else
cout << "NO";
return 0;
}
2019-01-29 20:54:26에 Tistory에서 작성되었습니다.