반응형
문제출처 : https://www.acmicpc.net/problem/1356
1356번: 유진수
첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다작거나 같은 자연수이다.
www.acmicpc.net
문제풀이>
해당 숫자를 앞과 뒷부분으로 분리 하는 방법을 아는지 묻는 문제
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int getnumlen(long long n)
{
int res=0;
while(n)
{
res++;
n/=10;
}
return res;
}
long long frontMulti(long long n,int pos)
{
n = n /(int)pow(10,pos);
long long res =1;
while(n)
{
res *=n%10;
n/=10;
}
return res;
}
long long rearMulti(long long n,int pos)
{
long long res =1;
for(int i=0;i<pos;i++)
{
res *=n%10;
n/=10;
}
return res;
}
bool check(long long n)
{
int numlen = getnumlen(n);
for(int i=1;i<numlen;i++)
{
if(frontMulti(n,numlen-i)==rearMulti(n,numlen-i)) return true;
}
return false;
}
int main()
{
long long n;
cin >> n;
if(check(n)) cout << "YES";
else cout <<"NO";
return 0;
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준1359-복권(브론즈1) (0) | 2020.09.07 |
---|---|
백준1357번-뒤집힌덧셈(브론즈1) (0) | 2020.09.04 |
백준1268 - 임시반장정하기(브론즈1) (0) | 2020.09.02 |
백준1259 - 팰린드롬수(브론즈1) (0) | 2020.09.01 |
백준 1252번 - 이진수덧셈(브론즈1) (0) | 2020.08.31 |