Colección de citas famosas - Colección de poesías - En cuanto al problema inverso de las combinaciones de letras, espero que un maestro de C++ pueda explicarlo usando recursividad y adjuntar el código. Gracias.

En cuanto al problema inverso de las combinaciones de letras, espero que un maestro de C++ pueda explicarlo usando recursividad y adjuntar el código. Gracias.

Pensé que esta pregunta era interesante, así que la hice. Para su comodidad, utilicé hilo y espero adoptarlo.

# include & ltiostream & gt

# include & ltstring& gt

Usar espacio de nombres std

String nextWord( String & ampStr, int N) //Encuentra el siguiente número de diccionario de str.

{

//Para encontrar el tamaño de str, la función size devuelve size_type en lugar de int type.

string::size_type SZ = str . size();

If (sz == 0) //Si es una cadena vacía, configúrala y regresa.

return str = " A

//end representa la enésima letra, que es el carácter más grande del diccionario. Suponiendo N=3, entonces end es c.

const char end = 'A'+N-1;

//Si el primer carácter es el más grande, como el diccionario C, no hay el siguiente número de diccionario. Establezca str en nulo y devuelva. /p>

if (str[0] == end)

return str =

//Si el último carácter es final, elimínelo y reemplácelo con el. anterior Agregue +1 al carácter

//Por ejemplo, si es ABC, el último dígito es C, luego elimine C y cambie B+1 a AC

if (str. [sz- 1] == fin)

{

cadena(SZ-1);

cadena[SZ-2]+= 1;

}

// De lo contrario, su longitud debe ser menor que n, agréguele otro carácter

// Por ejemplo, AB, agregue un carácter B +1 a él. Se convierte en

Otros

str+= str[SZ-1]+1

Cadena de retorno; p>}

int main()

{

Cadena cadena

int N, K;

CIN & gt;& gtN & gt& gtk;

for(int I = 1;i<= K;++i) //Busca el siguiente diccionario de str hasta encontrar el k-ésimo diccionario.

siguientePalabra(str, N);

cout & lt& ltstr & lt& ltendl

Devuelve 0;

}