Мне нужно рекурсивно создать палиндром разного типа и длины. Я думаю, мне следует использовать srand для генерации чисел, а затем преобразовать их как char для палиндрома. Rbegin и rend, возможно, могут работать с изменением символов. Я действительно застрял на этом этапе, потому что я знаю, что делать в теории, но не в применении. Вот что у меня есть на данный момент:
// This is a menu-driven program that makes a function call
// for each selection the user makes.
#include <iostream>
#include <iomanip>
#include <iostream>
#include <stdlib.h>
using namespace std;
// Function prototypes
void showMenu();
void generatePalindrome();
//*****************************************************************
// Definition of function generatePalindrome.
// The function displays the palindrome
//*****************************************************************
void generatePalindrome()
{
cout << "Generating Palindrome...";
}
int main()
{
int choice; // To hold a menu choice
// Constants for the menu choices
const int digits = 1,
upperCase = 2,
lowerCase = 3,
QUIT_CHOICE = 4;
// Set up numeric output formatting.
cout << fixed << showpoint << setprecision(2);
do
{
// Display the menu and get the user's choice.
showMenu();
cin >> choice;
// Validate the menu selection.
while (choice < digits || choice > QUIT_CHOICE)
{
cout << "Please enter a valid menu choice: ";
cin >> choice;
}
// If the user does not want to quit, proceed.
if (choice != QUIT_CHOICE)
switch (choice)
{
case digits:
cout << "Digits";
break;
case upperCase:
cout << "Upper Case";
break;
/* cout << static_cast<char>(number) << endl; */
case lowerCase:
cout << "Lower Case";
break;
}
/* cout << static_cast<char>(number) << endl; */
}
return 0;
}
//*****************************************************************
// Definition of function showMenu which displays the menu. *
//*****************************************************************
void showMenu()
{
cout << "\n\t\tWelcome to the Palindrome Generator!\n\n"
<< "Choose the type of palindrome you'd like to generate from"
<< "the menu below, or choose 4 to quit the program.\n"
<< "1. Digits\n"
<< "2. Uppercase letters\n"
<< "3. Lowercase letters\n"
<< "4. Quit the Program\n\n"
<< "Enter your choice: ";
}
Я впервые задаю здесь вопрос.
Какой длины должны быть палиндромы? Действительно ли он должен быть рекурсивным? Вам нужно сохранить палиндром или просто распечатать его на экране?
Я не понимаю, почему это должно быть рекурсивным. Что плохого в том, чтобы просто сгенерировать случайную строку, а затем изменить ее, удалив первый символ (или нет) и вставив его вместе с оригиналом?
Длина определяется вводом пользователя, и для присвоения требовалась рекурсия. Я не успел выполнить это задание вовремя, но я все еще хочу понять, как его выполнять. [ссылка] (chegg.com/homework-help/questions-and-answers/…) <--- Это задание.




