Dev - C++ - programa computacional que calcule el N-ésimo término de la sucesión de Fibonacci

 
Vista:

programa computacional que calcule el N-ésimo término de la sucesión de Fibonacci

Publicado por manuel (3 intervenciones) el 05/07/2019 08:27:13
. Un programa computacional que calcule el N-ésimo término de la sucesión de Fibonacci, la cual se define de la siguiente forma: a1=1, a2=1 y an=an-1+an-2 para n>2, es decir los dos primeros son 1 y el resto cada uno es la suma de los dos anteriores, los primeros son: 1, 1, 2, 3, 5, 8, 13, 21, .... El usuario debe de teclear N que debe de ser mayor o igual que 1.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

programa computacional que calcule el N-ésimo término de la sucesión de Fibonacci

Publicado por Alfil (1444 intervenciones) el 07/07/2019 00:53:34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
int fibonacci( int n )
{
    if( n == 0 || n == 1 )
       return n;
    else
       return fibonacci(n - 2) + fibonacci(n - 1);
}
 
int main()
{
    int n;
    int i = 0;;
 
    std::cout << "\nIntroduce un numero: "; std::cin >> n;
 
    std::cout<<"\nLa serie es: ";
 
    while( true ) {
        if( fibonacci(i) > n )
            break;
        if( fibonacci(i) != 0 )
          std::cout << ", ";
 
        std::cout << fibonacci(i);
        i++;
    }
 
    std::cout << std::endl;
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

programa computacional que calcule el N-ésimo término de la sucesión de Fibonacci

Publicado por Alfil (1444 intervenciones) el 07/07/2019 06:59:58
Versión ligeramente mejorada

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
int fibonacci( int n )
{
    if( n == 0 || n == 1 )
       return n;
    else
       return fibonacci(n - 2) + fibonacci(n - 1);
}
 
int main()
{
    int n;
    int f = 0, i = 0;;
 
    std::cout << "\nIntroduce un numero: "; std::cin >> n;
 
    std::cout<<"\nLa serie es: ";
 
    while( fibonacci(i) <= n ) {
        if( fibonacci(i) != 0 )
          std::cout << ", ";
 
        std::cout << fibonacci(i);
        i++;
    }
 
    std::cout << std::endl;
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

programa computacional que calcule el N-ésimo término de la sucesión de Fibonacci

Publicado por Rodrigo (539 intervenciones) el 07/07/2019 18:00:03
Una version iterativa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using namespace std;
 
int fibonacci( int n ) {
    if( n == 0 || n == 1 ) {
       return n;
    }
 
    //  prev2 -> prev1 -> fib (prev1 + prev2)
    int prev2 = 0;
    int prev1 = 1;
    int fib;
    for(int i = 2; i <= n; i++) {
        fib = prev1 + prev2;
        prev2 = prev1;
        prev1 = fib;
    }
 
    return fib;
}
 
int main() {
    for(int i = 0; i < 10; i++) {
        cout << "fib " << i << " = " << fibonacci(i) << endl;
    }
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar