회문 번호는 숫자가 바뀌면 값이 변경되지 않으면 그대로 유지됩니다. 회문 번호는 대칭이라고도 할 수 있습니다. 예:숫자 12321, 1551, 11 등은 숫자가 바뀌더라도 변경되지 않으므로 회문입니다.
숫자가 회문인지 아닌지 확인하는 프로그램은 다음과 같습니다.
예시
#include<iostream> using namespace std; void palindrome(int num) { int rev=0,val; val = num; while(num > 0) { rev = rev * 10 + num % 10; num = num / 10; } if(val==rev) cout<<val<<" is a palindrome"<<endl; else cout<<val<<" is not a palindrome"<<endl; } int main() { palindrome(12321); palindrome(1234); return 0; }
출력
12321 is a palindrome 1234 is not a palindrome
위의 프로그램에서 회문 함수는 숫자가 회문인지 아닌지 알아냅니다. 이 함수는 하나의 매개변수, 즉 num을 취합니다. 프로세스가 발생하기 전에 num의 복제본이 만들어집니다. 즉, val입니다. num의 값은 반전되어 rev에 저장됩니다.
이것은 다음 코드 스니펫에 의해 표시됩니다 -
int rev=0,val; val = num; while(num > 0) { rev = rev * 10 + num % 10; num = num / 10; }
그런 다음 rev의 값은 num이 아닌 val과 비교됩니다. 지금까지 num의 값이 0이기 때문입니다. rev가 val과 같으면 숫자가 회문이고 이것이 인쇄되고 그렇지 않으면 숫자가 회문이 아닙니다.
이는 다음 코드 스니펫에서 확인할 수 있습니다.
if(val==rev) cout<<val<<" is a palindrome"<<endl; else cout<<val<<" is not a palindrome"<<endl;