Chapter 10
– 193 –
getline(cin, s);
cout << "Original string: " << s << endl;
cout << "Reversed string: " << reverse(s) << endl;
}
//-- Definition of reverse()
string reverse(string word)
{
if (word.length() == 1)
return word;
else
return reverse(word.substr(1, word.length() - 1)) + word[0];
}
11. Simply replace the definition of
reverse()
in Problem 10 with the nonrecursive version
from Exercise 31.
12.
/*-------------------------------------------------------------------
Driver program to test the recursive palindrome checking function
of Exercise 32.
Input: An integer
Output: An indication of whether the integer is a palindrome
-------------------------------------------------------------------*/
#include <iostream>
#include <cmath>
using namespace std;
bool palindrome (unsigned number, int numDigits);
/*-------------------------------------------------------------------
Recursively check if an integer is a palindrome -- Exer. 32.
Precondition: number has numDigits digits.
Postcondition: True is returned if number is a palindrome, and
false otherwise.
-------------------------------------------------------------------*/
int main()
{
int x, n;
cout << "Enter integer & number of digits: ";
cin >> x >> n;
cout << "Palindrome? " << (palindrome(x, n) ? "Yes" : "No") << endl;
}
//-- Definition of palindrome()
bool palindrome (unsigned number, int numDigits)
{