Add fibonacci exercise

This commit is contained in:
Manuel Vergara 2024-05-05 12:17:55 +02:00
parent 8ac29e55c8
commit 60eac14ae2
3 changed files with 81 additions and 2 deletions

View File

@ -761,7 +761,7 @@ La posibilidad de crear las librerías facilita la reutilización del código y
1. Diseñad una función que, dado un entero n, calcule la suma de los primeros n números de la serie Fibonacci. 1. Diseñad una función que, dado un entero n, calcule la suma de los primeros n números de la serie Fibonacci.
[Solución en lenguaje C]() [Solución en lenguaje C](./soluciones_c/solucion1/fibonacci.c)
2. Diseñad una acción que, dados un real que representa el saldo de una cuenta corriente y otro real que representa un cargo o imposición, actualice el saldo de la cuenta. 2. Diseñad una acción que, dados un real que representa el saldo de una cuenta corriente y otro real que representa un cargo o imposición, actualice el saldo de la cuenta.
@ -804,7 +804,45 @@ function squareRoot(x: real): real;
1. Solución 1. Solución
```c ```alg
function fibonacci(n: integer): integer
var
i, suma, a, b: integer;
end var
if n < 3 then
suma:= 1;
else
a:= 0;
b:= 1;
suma:= 0;
for i:= 1 to n do
suma:= a+b;
b:= a;
a:= suma;
end for
end if
return sum;
end function
algorithm main
var
number: integer;
end var
writeString("Introduce un número entero positivo: ");
number:= readInteger()
writeString("La suma de los ");
writeInteger(number);
writeString(" primeros números de la serie Fibonacci es: ");
writeInteger(fibonacci(n));
end algorithm
``` ```

View File

@ -0,0 +1,41 @@
#include <stdio.h>
/* Función que, dado un entero n, calcule la suma de los primeros n números de la serie Fibonacci.*/
int fibonacci(int n)
{
int i, suma, a, b;
if (n < 3)
{
suma = 1;
}
else
{
a = 0;
b = 1;
for (i = 0; i < n; i++)
{
suma = a + b;
b = a;
a = suma;
}
}
return suma;
}
int main()
{
int number;
printf("Introduce un número entero positivo: ");
scanf("%d", &number);
printf("La suma de los %d primeros números de la serie Fibonacci es: %d\n", number, fibonacci(number));
return 0;
}