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 0000000..3ea8396 Binary files /dev/null and b/fundamentos-programacion/PR2/soluciones_c/solucion1/fibonacci differ 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; +}