-
2028 자기복제수Algorithm/baekjoon 2022. 2. 12. 10:45
2028번: 자기복제수
어떤 자연수 N을 제곱했을 때, 그 제곱수의 맨 뒷자리에 원래의 수 N이 다시 나타나면, 우리는 그 수 N을 자기복제수라고 한다. 예를 들면, 5의 제곱은 52는 25이고 25의 맨 뒷자리에 원래의 수 5가
www.acmicpc.net
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> #include<cstring> using namespace std; int main() { cin.tie(NULL); cin.sync_with_stdio(false); int num; int fornum = 0; cin >> fornum; for (int z = 0; z < fornum; z++) { cin >> num; int cnt = 0; int numcopy1 = num; int numcopy2 = num; while (numcopy1 != 0) { numcopy1 /= 10; cnt++; } int* narr = new int[cnt]; for (int i = cnt - 1; i >= 0; i--) { narr[i] = num % 10; num /= 10; } int mnum = numcopy2 * numcopy2; int mcnt = 0; int mnumcopy1 = mnum; while (mnumcopy1 != 0) { mnumcopy1 /= 10; mcnt++; } int* marr = new int[mcnt]; for (int i = mcnt - 1; i >= 0; i--) { marr[i] = mnum % 10; mnum /= 10; } int flag = 0; for (int i = 0; i < cnt; i++) { if (marr[mcnt - cnt + i] != narr[i]) { flag = 1; }; } if (flag == 0) { cout << "YES\n"; } else { cout << "NO\n"; } } }
'Algorithm > baekjoon' 카테고리의 다른 글
2161 카드1 (0) 2022.02.12 1924 2007년 (0) 2022.02.12 1120 문자열 (0) 2022.02.11 05 스택 (0) 2022.01.26 04 연결리스트- 백준 5397 (0) 2022.01.17