Fibonacci em bash shell

Publicado por Raimundo Alves Portela (última atualização em 04/10/2011)

[ Hits: 11.203 ]

Homepage: http://portelanet.com

Download fibonacci.sh




Script simples, apenas para fazer a série de Fibonacci em bash shell.

Construído para ajudar no tópico: http://www.vivaolinux.com.br/topico/Shell-Script/Duvida-com-Script

  



Esconder código-fonte

#!/bin/bash
# fibonacci.sh
# Desenvolvido por: Raimundo Portela - rai3mb@gmail.com
# Construído para ajudar no tópico: 
# http://www.vivaolinux.com.br/topico/Shell-Script/Duvida-com-Script
# Script simples, apenas para fazer a série de fibonacci em bash shell
#-------------------------------------------------------------
read -p "Informe o primeiro valor: " PRIMEIRO
read -p "Informe o segundo valor: " SEGUNDO

read -p "Informe a quantidade de números que quer na sequência: " QTD

[ -z "$QTD" -a "$QTD" -gt 1 ] && echo "A quantidade deve ser maior que 1" && exit

for i in $(seq $QTD)
do
    echo -n "$PRIMEIRO " # mostra o elemento
    SOMA=$(($PRIMEIRO+$SEGUNDO)) # faz a soma dos elementos para a sequência
    PRIMEIRO=$SEGUNDO # guarda o valor do segundo elemento (ainda não exibido)
    SEGUNDO=$SOMA # a soma passa a ser o segundo elemento
done
# um echo apenas para pular a linha ao fim da execução do script
echo

Scripts recomendados

Convertendo man pages em PDFs (Versão CShell)

buscar textos que contenham várias strings

Instalador de chaves PGP no APT

Sem APTONCD (Corrigido)

menu de interação 1 / 7 pt-br facil aprendizado


  

Comentários
[1] Comentário enviado por danniel-lara em 04/10/2011 - 18:56h

Tchê ficou legal esse script

[2] Comentário enviado por vitinho217 em 30/06/2014 - 09:47h

Que tal usar recursividade ?

[3] Comentário enviado por rai3mb em 30/06/2014 - 09:49h

É só fazer!

[4] Comentário enviado por vitinho217 em 30/06/2014 - 10:03h

read -p "Informe o primeiro valor: " PRIMEIRO
read -p "Informe o segundo valor: " SEGUNDO

# Função recursiva para fibonacci
fibonacci(){
if [ $times -ne $QTD ];then # Verifica se o últimos elemento já foi atingido
echo -n "$1 " # mostra o elemento
SOMA=$(($1+$2)) # faz a soma dos elementos para a sequência
times=$(($times + 1)) # incrementa número de elemenos em sequências
fibonacci $2 $SOMA # recusividade
fi
}

read -p "Informe a quantidade de números que quer na sequência: " QTD
[ -z "$QTD" -a "$QTD" -gt 1 ] && echo "A quantidade deve ser maior que 1" && exit

# Zerar variáveis que contam os números em sequências
times=0

fibonacci $PRIMEIRO $SEGUNDO

# um echo apenas para pular a linha ao fim da execução do script
echo

[5] Comentário enviado por rai3mb em 30/06/2014 - 10:11h

Perfeito!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts