[ Foro de C# ]
Buenas tardes:
Tengo una pregunta como puedo llenar un arreglo con la sucesion fibonacci, por medio de recursividad., en C#
De antemano
Muchas gracia
¿Sabes lo que es la sucesión de Fibonacci? ¿Sabrías escribirla en pantalla? ¿Sabes guardar datos en arrays? Si conoces esas tres cosas, debería ser fácil; si no, pregunta lo que no sepas hacer.
class Program
{
static void Main(string[] args)
{
int N;
Console.WriteLine("Introduce el valor de n ");
N = int.Parse(Console.ReadLine());
int[] numSf = new int[N];
Console.WriteLine("\n\n\nSucesión de Fibonacci");
for (int i = 1; i<=N; i++)
{
int fib = Fibonacci(i);
Console.Write(" " + fib);
}
SucesionFibonacci(numSf, N);
//SucesionFibonacci(numsF,n) llamada metodo
//static void sucesionfibonacci(int[] sf, int N) metodo de sucesion
Console.WriteLine(" ");
Impresion(numSf, N);
//static void Imprime(int[n] num, int N) impresion
Console.ReadLine();
}
static void Impresion(int [] numSf, int N)
{
int j;
for (j = 0; j < N; j++)
{
Console.WriteLine(numSf[j] + "");
}
}
static void SucesionFibonacci(int[] numSf, int N)
{
//Mi duda se encuentra aquí, en como llenar el arreglo sin ciclos, solamente con recursividad.
}
static int Fibonacci(int N)
{
if (N == 1)
return 0;
if (N == 2)
return 1;
return Fibonacci(N - 2) + Fibonacci(N - 1);
}
}
}
En vez de hacer un "for" que vaya desde uno hasta n, necesitas que el caso base de la recursividad sea n=1 y el caso general sea n=N y ceda el control a N-1:
static void SucesionFibonacci(int[] numSf, int N)
{
if (N < 0) return;
dato[N] = Fibonacci(N);
SucesionFibonacci(numSf, N-1);
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)