Red de conocimiento informático - Computadora portátil - C Problema de subir escaleras n escaleras, puedes subir 1, 2, 3 niveles cada vez, el número de escalones en un escalón es m

C Problema de subir escaleras n escaleras, puedes subir 1, 2, 3 niveles cada vez, el número de escalones en un escalón es m

#include?lt;iostreamgt;

#include?lt;stringgt;

usando?namespace?std;

int? n, m; // De la pregunta, n es la serie, m es el número de pasos

long?long?cnt=0 //El número total de situaciones estadísticas

void?dfs(int ?step_climb, string?ans, int?left)//step_climb es el número de pasos que se han dado

{//ans es la última respuesta de la cadena de salida, la izquierda es la número de pasos restantes

if(step_climbgt; m||leftlt; 0)//Si das más de m pasos o vas demasiado lejos (los pasos restantes son negativos)

{

return?;

}

if(step_climb==mamp;amp;left==0)//Si das exactamente m pasos y hay no quedan pasos

{

ans.erase(ans.begin()); //Eliminar el número de conexión adicional

coutlt;lt;anslt;lt ;endl;//Emitir la respuesta

cnt; //Contador 1

return;

}

dfs(step_climb 1, ans "-1", left-1); // Busca recursivamente las tres situaciones, ans agrega la serie del paso actual

dfs(step_climb 1, ans "-2", left-2)

dfs(step_climb 1, ans "-3",left-3);

}

int?main()

{

cingt;gt; ngt; gt; m;

dfs(0, "", n);

coutlt; ** tiene"lt;lt;cntlt;lt;" ¿Qué tipo de situación"lt;lt;endl;?

}

Si tiene alguna pregunta, responda