Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

숫자가 C++에서 회문인지 확인

<시간/>

여기서 숫자가 회문인지 아닌지 확인하는 방법을 알아보겠습니다. 회문 번호는 양방향에서 동일합니다. 예를 들어, 숫자 12321은 회문이지만 12345는 회문이 아닙니다.

논리는 매우 간단합니다. 우리는 숫자를 반대로 해야 하며, 반대로 된 숫자가 실제 숫자와 같으면 회문이고 그렇지 않으면 그렇지 않습니다. 더 나은 아이디어를 얻기 위해 알고리즘을 살펴보겠습니다.

알고리즘

isPalindrome(n) -

입력 - 숫자 n

출력 - 숫자가 회문이면 true, 그렇지 않으면 false

begin
   temp := n
   rev := 0
   while n > 0, do
      rev := rev * 10 + (n mod 10)
      n := n / 10
   done
   if rev = temp, then
      return true
   return false
end

예시

#include <iostream>
using namespace std;
bool isPalindrome(int number) {
   int temp = number;
   int rev = 0;
   while(number > 0){
      rev = 10 * rev + number % 10; //take the last digit, and attach with the rev number /= 10;
   }
   if(rev == temp)
      return true;
   return false;
}
int main() {
   int n = 12321;
   if(isPalindrome(n)){
      cout << n << " is palindrome number";
   } else {
      cout << n << " is not a palindrome number";
   }
}

출력

12321 is palindrome number