Функция палиндрома

Мне нужно переписать программу, чтобы использовать функцию isPalindrome. Он должен ввести 5-значное целое число и вернуть логическое значение (true, если это палиндром, false, если это не так), и он не может содержать никаких операторов cout. Я не уверен, как бы я сделал это без функции cout. Вот мой код:

#include <iostream>

using namespace std;

int main()
{
int number, digit1, digit2, digit3, digit4, digit5;

cout << "\nEnter a 5-digit integer: ";
cin >> number;

//Break down input number into individual digits:
digit1 = number / 10000;
digit2 = number % 10000 / 1000;
digit3 = number % 10000 / 100;
digit4 = number % 10000 / 10;
digit5 = number % 10;

if ( digit1 == digit5 && digit2 == digit4 )
cout << number <<" is a palindrome.\n";
else
cout << number << " is not a palindrome.\n";
return 0;
}
int isPalindrome ()
{

}

2

Решение

Это должно помочь вам начать (не разрушая слишком много веселья)

int main(){
//accept integer input using cin
if(isPalindrome(input))
cout << "yaay!";
else
cout << "nooouuu!";

}

bool isPalindrome (int input)
{
//test things here
return ( digit1 == digit5 && digit2 == digit4 )
// ^ returns true if condition satisfied
}

Кроме того, ваш способ выделения цифр неверен. Так должно быть:

digit1 = number/10000 % 10;
digit2 = number/1000 % 10;
digit3 = number/100 % 10;
digit4 = number/10 % 10;
digit5 = number % 10;

Конечно, вышеупомянутое должно фактически быть в цикле.

5

Другие решения

Не нужно указывать, сколько цифр содержит число. Вы можете попробовать что-то вроде этого:

    bool isPalindrome(int number) {
int reverse = 0, copy = number;
while(copy != 0) {
reverse = reverse*10 + copy%10;
copy /= 10;
}
return number == reverse;
}
3

string s;
cout<<"\nEnter a string : " ;
cin>>s;
int length = s.length();

char* arr = new char();

int k = length;

for(int i = 0 ; i <= length ; i++)
{
arr[i] = s[k];
k -= 1;
}

if(!palindrome(s, arr, length))
{
cout<<"\nNot Palindrome\n";
}

else
{
cout<<"\nPalindrome\n";
}
}

bool palindrome(string& s, char* arr, int length)
{
int j = 0;
for(int i = 1 ; i <= length; i++)
{
if(arr[i]!= s[j])
{
return false;
}
j++;
}
return true;
}
1
По вопросам рекламы [email protected]