Publicidad

Introducción:

Hola, hoy resolveremos una serie muy similar a la de Fibonacci, este ejercicio lo saque de un practico que me pasaron.

Problema:

Generar y mostrar los primeros N términos de la siguiente serie : 0,1,1,2,4,7,13,24,44.

Obtener N términos de la siguiente serie : 0,1,1,2,4,7,13,24,44 - Programación - Serie númerica - Iludtración (Ney)

 

Solución:

En la series fibonacci se suele sumar los 2 anteriores resultados (llamémoslos a y b) para generar el actual (llamémoslo R), iniciando normalmente en: a= -1 y b=1.

En esta serie sucede algo similar, solo que toma los 3 anteriores (llamémoslos a, b y c), para generar el actual (R), iniciando en: a= -1, b=1 y c=0.

Siendo que R=a+b+c y a= -1, b=1 y c=0 sumamos y obtenemos:

R= -1+1+0

R= 0

Publicidad

Ahora antes de volver a sumar, hacemos una sucesión de los valores con las variables donde a=b, b=c, c=R, recordando que a = -1, b = 1 y c = 0.

a = b, b = c, c = R

a =1, b = 0, c = 0

R = 1+0+0

R = 1

Haciendo lo mismo repetidas veces podemos ver que la serie funciona:

a   b   c = R
-1  1   0 = 1
1   0   1 = 1
0   1   1 = 2
1   1   2 = 4
1   2   4 = 7
2   4   7 = 13
4   7  13 = 24
7  13  24 = 44

Para que se entienda mejor lo escribiré en pseudocódigo.

Donde:

  • a, b, c y R valen 0.
  • n es la cantidad de números que retornara.
  • n1 incrementara hasta llegar a n-1.
  • serie es una variable de tipo cadena o string.
pedir n
a=-1
b=1
c=0
while(n>0){
  R=a+b+c
  mostrar R
  a=b
  b=c
  c=R
  n=n-1
}

Aquí les dejo el código escrito en c++, por si desean probar el código directamente:

#include <iostream>
#include <string>

using namespace std;

int main(){
  int R,n,a,b,c;
  R=0; a=-1; b=1; c=0;
  string serie="";
  cout<<"por favor ingrese un número: ";
  cin>>n;
  while(n>0){
    R = a+b+c;
    serie = serie+to_string(R)+",";
    a = b;
    b = c;
    c = R;
    n = n-1;
  }
  cout<<serie;
  cout <<"\n"<<endl;
  return 0;
}

Si, encuentras algún error por favor dejalo en los comentarios, para que pueda rectificar el ejercicio.

Publicidad


Subscribe
Notify of
guest

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Rodrigo A.S.

Me ayudo mucho, no sabía cómo hacer este ejercicio, hasta que encontré esta página, gracias por la explicación muy excelente gracias :).