C++で回文数を判定する方法について説明します。回文数とは、前から読んでも後ろから読んでも同じ値になる数のことです。
方法1: 文字列として処理する方法 まず、回文数を判定するために数値を文字列に変換します。次に、文字列の前半部分と後半部分を比較して、対応する文字が一致するかどうかを確認します。もし一致しない文字があれば、回文数ではありません。
以下はこの方法のコード例です:
#include <iostream>
#include <string>
bool isPalindrome(int number) {
std::string str = std::to_string(number);
int length = str.length();
for (int i = 0; i < length / 2; i++) {
if (str[i] != str[length - i - 1]) {
return false;
}
}
return true;
}
int main() {
int number;
std::cout << "整数を入力してください: ";
std::cin >> number;
if (isPalindrome(number)) {
std::cout << number << " は回文数です" << std::endl;
} else {
std::cout << number << " は回文数ではありません" << std::endl;
}
return 0;
}
方法2: 数値として処理する方法 数値として処理する場合、余りを利用して数値を逆順にすることができます。元の数値と逆順の数値が一致すれば、回文数です。
以下はこの方法のコード例です:
#include <iostream>
bool isPalindrome(int number) {
int originalNumber = number;
int reversedNumber = 0;
while (number > 0) {
int digit = number % 10;
reversedNumber = reversedNumber * 10 + digit;
number /= 10;
}
return (originalNumber == reversedNumber);
}
int main() {
int number;
std::cout << "整数を入力してください: ";
std::cin >> number;
if (isPalindrome(number)) {
std::cout << number << " は回文数です" << std::endl;
} else {
std::cout << number << " は回文数ではありません" << std::endl;
}
return 0;
}
上記のコード例では、ユーザーから整数を入力し、その数値が回文数かどうかを判定します。それぞれの方法で回文数を判定することができます。