C++での回文数の検出方法


  1. 文字列を使った方法: 回文数は前後を反転しても同じ数になる性質を持っています。そのため、数値を文字列に変換し、文字列の前半と後半を比較することで回文数を検出することができます。

    #include <iostream>
    #include <string>
    using namespace std;
    bool isPalindrome(int num) {
       string numStr = to_string(num);
       int len = numStr.length();
       for (int i = 0; i < len / 2; i++) {
           if (numStr[i] != numStr[len - i - 1]) {
               return false;
           }
       }
       return true;
    }
    int main() {
       int num;
       cout << "数値を入力してください: ";
       cin >> num;
       if (isPalindrome(num)) {
           cout << "回文数です" << endl;
       } else {
           cout << "回文数ではありません" << endl;
       }
       return 0;
    }
  2. 数値を使った方法: 数値を反転させることで、回文数であるかどうかを確認することもできます。

    #include <iostream>
    using namespace std;
    bool isPalindrome(int num) {
       int originalNum = num;
       int reverseNum = 0;
       while (num > 0) {
           int remainder = num % 10;
           reverseNum = reverseNum * 10 + remainder;
           num /= 10;
       }
       return (originalNum == reverseNum);
    }
    int main() {
       int num;
       cout << "数値を入力してください: ";
       cin >> num;
       if (isPalindrome(num)) {
           cout << "回文数です" << endl;
       } else {
           cout << "回文数ではありません" << endl;
       }
       return 0;
    }

これらの方法を使用すると、C++で回文数を検出することができます。それぞれの方法は異なるアプローチを使用しており、どちらも正確に回文数を判定することができます。