Fibonacci em bash shell

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

[ Hits: 10.990 ]

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

theme para o fluxbox

Demonstrando o uso do Xdialog

Configuração Teclado ABNT2 (Gnome3)

Formatando disquetes em modo texto

pimg na rede


  

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