회문 번호는 숫자가 바뀌면 값이 변경되지 않으면 그대로 유지됩니다. 회문 번호는 대칭이라고도 할 수 있습니다. 예:숫자 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;