es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función del Triángulo de Pascal

Estoy tratando de escribir una función para imprimir el triángulo de Pascal hasta el paso que el usuario ingrese. El programa funciona hasta el paso 5, e imprime 0 1 4 0 4 1 0 en lugar de 0 1 4 6 1 0 que es lo esperado. Toma dos valores de otra lista, que son ambos 3 en ese momento, y los agrega, por lo que no estoy seguro de cómo se cambia a 0.

Código:

static void PascalsTri(int input)
{
//Declara listas comenzando en 0 1 0
int counter = 0;
int[] start = { 0, 1, 0 };
List<int> TriList = new List<int>(start);
List<int> TempTriList = new List<int>();
//Verifica si la entrada es posible
if(input < 1)
{
return;
}
//Escribe la lista de inicio en la consola
Console.WriteLine(string.Join(" ", TriList));
//Ejecuta la función tantas veces como lo indique el usuario
for(int i = 1; i < input; i++)
{
//Comienza con los primeros dos dígitos
TempTriList.Add(0);
TempTriList.Add(1);
//Recorre escribiendo la regla para la cantidad de números que hay
while(counter < i)
{
//Toma el número anterior y lo suma al número correlacionado
TempTriList.Insert(counter+1, TriList[counter] + TriList[counter+1]);
counter++;
}
TempTriList.Add(0);
TriList.Clear();
//Registra la salida en la lista permanente y la imprime en la consola
foreach(int j in TempTriList)
{
TriList.Add(TempTriList[j]);
}
TempTriList.Clear();
counter = 0;
Console.WriteLine(string.Join(" ", TriList));
}
}

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en la línea TempTriList.Insert(counter+1, TriList[counter] + TriList[counter+1]);. Parece que los valores de TriList[counter] y TriList[counter+1] son ambos 3 cuando deberían ser 1 y 4. Podría ser necesario verificar la lógica del bucle para asegurarse de que los valores se estén actualizando correctamente.

Comments are closed.