制作回文功能

时间:2016-03-12 12:23:46

标签: c++ palindrome

#include<iostream>
using namespace std;

bool is_palindrome(int input[], int numOfSlots);

int main(){

int n;

cin >> n;

int *input = new int[n]; // A dynamic array with n slots

for (int i = 0 ; i < n ; i++){

     cin >> input[i];
    }

    if (is_palindrome(input,n) == true ){
        cout << "This is a palindrome.";
    }else{
        cout << "This is NOT a palindrome.";
    }
    return 0;
}

// Implement the is_palindrome() function here...

我如何解决问题?

1 个答案:

答案 0 :(得分:0)

你的问题根本不清楚.Palindrome基本上是你反转输入然后它给出相同的结果。

比如考虑一个例子 12321 。如果你反过来,它也会给你相同的数字。所以基本的is_palindrome实现应该像

bool is_palindrome(int inputNum)
{
 int n = inputNum;
 bool isPalindrome = false;
 int digit, rev = 0;
 do
 {
     digit = inputNum%10;
     rev = (rev*10) + digit;
     inputNum = inputNum/10;
 }while (inputNum!=0);

 cout << " The reverse of the number is: " << rev << endl;
 if (n == rev)
  isPalindrome = true ;    

return isPalindrome;
}