domingo, 26 de setembro de 2021

C e javaScript : Sequência de Fibonacci / Soma n primeiro termos / Encontra termo na posição n

Em linguagem C:


// Em c:
// Para compilar:
// gcc phi.c -o phi -lm

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

// Phi e phi conjugados tal que Phi * phi = 1
#define Phi (1+sqrt(5))/2
#define phi (1-sqrt(5))/2

// Encontra n numero de Fibonacci onde a sequencia começa em 0
int Fib(int n)
{
    return round(( pow(Phi, n) - pow(phi, n) ) / sqrt(5));
}

// Soma dos primeiros n numeros de Fibonacci onde a sequencia começa em 0
int sumPhi(int n)
{
    return Fib(n+2)-1;
}

// Encontra a posição n onde Fib(n)=value
int FindPosition(int value)
{
    return floor(log(value*sqrt(5))/log(Phi));
}

int main()
{
    int a=Fib(7);
    int b=sumPhi(7);
    int c=FindPosition(13);
    printf("numero 7 da sequencia de Fibonacci:%i\n", a);
    printf("soma dos 7 primeiros temos da sequencia de Fibonacci:%i\n", b);
    printf("Numero 13 na posição da sequencia de Fibonacci:%i\n", c);
    return 0;
}

 

Em javaScript:


<script>
// Phi e phi conjugados tal que Phi * phi = 1
// Phi * phi = 1
var Phi= (1+Math.sqrt(5))/2;
var phi= (1-Math.sqrt(5))/2;

// Encontra n numero de Fibonacci onde a sequencia começa em 0
function Fib(n)
{
    return Math.round(( Math.pow(Phi, n) - Math.pow(phi, n) ) / Math.sqrt(5));
}

// Soma dos primeiros n numeros de Fibonacci onde a sequencia começa em 0
function sumPhi(n)
{
    return Fib(n+2)-1;
}

// Encontra a posição n onde Fib(n)=value
function FindPosition(value)
{
    return Math.floor(Math.log(value*Math.sqrt(5))/Math.log(Phi));
}
document.write("Sum = "+sumPhi(8));
</script>

Nenhum comentário: