From 60eac14ae2743a4fbd12d9abd45a8044e1c15ca0 Mon Sep 17 00:00:00 2001 From: Manuel Vergara Date: Sun, 5 May 2024 12:17:55 +0200 Subject: [PATCH] Add fibonacci exercise --- fundamentos-programacion/PR2/README.md | 42 +++++++++++++++++- .../PR2/soluciones_c/solucion1/fibonacci | Bin 0 -> 16104 bytes .../PR2/soluciones_c/solucion1/fibonacci.c | 41 +++++++++++++++++ 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100755 fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci create mode 100644 fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci.c diff --git a/fundamentos-programacion/PR2/README.md b/fundamentos-programacion/PR2/README.md index 1fc0d1e..12ae7cb 100644 --- a/fundamentos-programacion/PR2/README.md +++ b/fundamentos-programacion/PR2/README.md @@ -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. -[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. @@ -804,7 +804,45 @@ function squareRoot(x: real): real; 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 ``` diff --git a/fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci b/fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci new file mode 100755 index 0000000000000000000000000000000000000000..3ea83963254d69bad51531092cdb0c7eb8e6a4df GIT binary patch literal 16104 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 CyRpvz literal 0 HcmV?d00001 diff --git a/fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci.c b/fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci.c new file mode 100644 index 0000000..a7145d3 --- /dev/null +++ b/fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci.c @@ -0,0 +1,41 @@ +#include + +/* 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; +}