본문 바로가기

알고리즘 · 코딩

[SWEA 10570] 제곱 팰린드롬 수

문제 링크

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AXO72aaqPrcDFAXS

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


C++ 풀이

#include <iostream>
#include <string>
using namespace std;

bool is_palindrome(int n) {
	string s = to_string(n);
	int start = 0, end = s.length() - 1, val = 0;
	while (start + val < end - val) {
		if (s[start] != s[end])
			return false;
		val++;
	}
	return true;
}

int main() {
	int T;
	cin >> T;
	for (int i = 1; i <= T; i++) {
		int A, B, answer = 0;
		cin >> A >> B;
		for (int j = ceil(sqrt(A)); j <= floor(sqrt(B)); j++) {
			if (is_palindrome(j) && is_palindrome(pow(j, 2)))
				answer++;
		}
		cout << "#" << i << " " << answer << "\n";
	}
	return 0;
}

A의 제곱근과 B의 제곱근을 범위로 두고 팰린드롬 수의 개수를 확인하였다.

 

 

 

반응형