Arquivo da tag: Fibonacci

Enésimo termo da sequência Fibonacci sem recursividade em C

O programa a seguir calcula e exibe um elemento da sequência Fibonacci. O programa foi construído sem o uso de recursividade.
O que deixa o código um pouco menos elegante, mas evita certas limitações da recursão frente à valores muito altos.

fib

//================================================================
// Descricao: O programa calcula e mostra o enésimo termo
//            da sequência Fibonacci sem uso de recursividade.
//================================================================

// Bibliotecas
#include <stdio.h>
#include <stdlib.h>

// Protótipo da função fibonacci
int fibonacci(int n);

// Função Principal
int main(int argc, char** argv) {
	int n;

    // Lê a posição do termo
    printf("Digite a posicao: ");
    scanf("%d", &n);

    // Imprime o termo
    printf("O termo: %d\n", fibonacci(n));

    system("pause");
    return 0;
}

// Função Fibonacci
int fibonacci(int n) {
	int anterior = 0,
		proximo = 1,
		aux,
  		i;

	// Se for o primeiro número da lista
	if(n == 1) {
		return 0;
	// Se for o segundo número da lista
 	} else if(n == 2) {
 		return 1;
	// Se for um número a partir da terceira posição
  	} else {
  		// Calcula os valores dois a dois até chegar na posição requerida
		for(i = 3; i <= n; i++) {
			aux = proximo;
			proximo = anterior + proximo;
			anterior = aux;
		}
		return proximo;
  	}
}

Enésimo termo da sequência Fibonacci – Ruby

fibrec
#================================================================
# Descrição: O programa calcula e imprime o enésimo termo
#            da sequência Fibonacci, de forma recursiva
#================================================================

# Função recursiva do fibonacci
def fibonacci(n)
	if(n == 1)
		return 0
	elsif(n == 2)
		return 1
	else
		return fibonacci(n-1) + fibonacci(n-2)
	end
end

# Lê um valor e converte em um número inteiro
puts "Digite a posicao: "
n = gets.to_i()

# Gera o termo da sequência
fib = fibonacci(n)

#Converte os números em texto e imprime o termo
puts "O termo: " + fib.to_s

Enésimo termo da sequência Fibonacci – C

fib

//================================================================
// Descrição: O programa calcula e imprime o enésimo termo
//            da sequência Fibonacci, de forma recursiva
//================================================================

// Libs
#include <stdio.h>
#include <stdlib.h>

// Protótipo da função fibonacci
int fibonacci(int n);

// Função main
// Main Function
int main(int argc, char** argv)
{
    int n;
    
    // Lê a posição do termo
    printf("Digite a posicao: ");
    scanf("%d", &n);
    
    // Imprime o termo
    printf("O termo: %dn", fibonacci(n));
    
    system("pause");
    return 0;
}

// Função fibonacci
int fibonacci(int n) {
    if(n == 1) {
        return 0;
    } else if(n == 2) {
        return 1;
    } else {
        return fibonacci(n-1) + fibonacci(n-2);
    }
}