Fibonacci rápido foi um exercício bem interessante! Aqui posto a solução para vocês, espero que gostem!
Plataforma: URI (BEECROWD)
Problema: 2164
Enunciado:
A fórmula de Binet é uma forma de calcular números de Fibonacci.
Sua tarefa é, dado um natural n, calcular o valor de Fibonacci(n) usando a fórmula acima.
Linguagens: C e C++
Solução:
Basta montar a fórmula solicitada no exercício. Fiz ela em partes para facilitar, criando termos separados. É necessário delimitar as casas decimais (utilizar uma casa decimal). Em C isso é feito com %.1lf (delimitar o long float/double em 1 casa decimal), em C++ é feito com a iomanip utilizando setprecision(1).
Código em C:
#include <stdio.h> #include <math.h> int main() { int n; double raiz5 = sqrt(5); scanf("%i", &n); double termo1 = pow((1 + raiz5) / 2.0, n); double termo2 = pow((1 - raiz5) / 2.0, n); double resposta = (termo1 - termo2) / raiz5; printf("%.1lf\n", resposta); return 0; }
#include <iostream> #include <iomanip> #include <cmath> using namespace std; int main() { int n; cin >> n; double raiz5 = sqrt(5); double termo1 = pow((1 + raiz5) / 2.0, n); double termo2 = pow((1 - raiz5) / 2.0, n); double resposta = (termo1 - termo2) / raiz5; cout << fixed << setprecision(1) << resposta << endl; return 0; }