Calcular a série de Fibonacci

Publicado por Felipe Leão Mansur Pinheiro (última atualização em 30/09/2009)

[ Hits: 13.684 ]

Download serie.de.fibonacci.c




Eis um algoritmo que serve para calcular a famosa série do matemático Fibonacci. O sistema funciona com o usuário escolhendo as opções fornecidas pelo MENU GERAL, então se a escolha for 1 pede-se, em seguida, o limite da série. Se escolhido 2, mostra-se informações do algoritmo. Se fornecido 3 então o programa aborta a execução e sai.

Por favor, mandem sugestões ou críticas, afinal é errando que se aprende, ainda mais em programação!

The Unforgiven.

  



Esconder código-fonte

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int fibonacci(int i)
{
    if((i==0)||(i==1))
    return i;
    else
    return fibonacci(i-1)+fibonacci(i-2);
}

int main()
{
    int n,i,f=0,escolha=0;
    system("color 02");
    do{
        system("cls");
        printf("                    * - - - - - - - - - - - - - - - - - - -*\n");
        printf("                    |            & MENU GERAL &            |\n");
        printf("                    | - - - - - - - - - - - - - - - - - - -|\n");
        printf("                    | (1)-Inicia Serie                     |\n");
        printf("                    |                                      |\n");
        printf("                    | (2)-Sobre o Algoritmo                |\n");
        printf("                    |                                      |\n");
        printf("                    | (3)-Sair                             |\n");
        printf("                    * - - - - - - - - - - - - - - - - - - -*\n");
        scanf("%d",&escolha);
        switch(escolha){
                        case 1:
                             {
                                 printf("Forneca o limite da Serie.\n");
                                 scanf("%d",&n);
                                 while(n < 0){
                                      printf("Forneca um numero positivo para a serie!Depois pressione ENTER.\n");
                                      scanf("%d",&n);
                                      getch();
                                      }
                                 for(i=0;i<n;i++)
                                 fibonacci(i);
                                 for(i=0;i<n;i++)
                                 printf("Fibonacci(%d)=%d\n",++f,fibonacci(i));
                                 f=0;
                                 printf("-------------------------------------\n");
                                 printf("A serie de Fibonacci consiste em\n");
                                 printf("F(n)={0 se n=0 , 1 se n=1 ,(n-1)+(n-2) outros casos.\n");
                                 printf("Pressione ENTER.\n");
                                 getch();
                                 break;
                                         }
                             case 2:
                                  {
                                         printf("Desenvolvido por:\n");
                                         printf("!===================================!\n");
                                         printf("!      Nome:Felipe Leao             !\n");
                                         printf("!      Curso:Ciencia da Computacao  !\n"); 
                                         printf("!      Periodo:IV                   !\n");
                                         printf("!      Disciplina:APA               !\n");
                                         printf("!      Instituicao: UNIPAC          !\n");
                                         printf("!===================================!\n");
                                         printf("Este algoritmo foi escrito em Linguagem C utilizando a ideia de recursividade.\n");
                                         printf("Futuramente sera incluido a divisao dos elementos dessa serie que servira\npara aproximacao da Proporcao Divina.\n");
                                         printf("Pressione ENTER.\n");
                                         getch();
                                         printf("\n\n");
                                         break;
                                         }
                                         case 3:
                                              {
                                                        printf("\aOBRIGADO POR USAR ESTE APLICATIVO!\n");
                                                        printf("Saindo...\n");
                                                        getch();
                                                        exit(0);
                                                        break;
                                                        }
                                         default:
                                                 {
                                                     printf("Forneca uma opcao valida.Voltando ao MENU GERAL.\n");
                                                     printf("Pressione ENTER.\n");
                                                     getch();
                                                     break;
                                                     }
                                                     }
                                                     }while(escolha !=3);
                                                     getch();
                                                     return 0;
                                                     }
    

Scripts recomendados

Imprime um mapa de caracteres ASCII

Exemplo Básico de Ponteiros em C

Mini - agenda

funcsoma2.c - Soma 2 pontos flutuantes

Comando continue


  

Comentários
[1] Comentário enviado por doradu em 01/02/2010 - 14:18h

Muito bom mesmo esse algoritmo

bem didático

mas acima de 35 no processadorzim q tou usando trava a tela

vlw

[2] Comentário enviado por doradu em 01/02/2010 - 14:20h

tem como segurar o cursor na tela até digitar a escolha?

[3] Comentário enviado por FelipeLeaoMansur em 03/02/2010 - 10:45h

doradu,

Muito obrigado por testar esse algoritmo, acima de 35 pode ter problemas mesmo de processamento pois por ter sido utilizado recursividade se exige mais do processador, mas esse pergunta de segurar o cursor eu não conheço nada que possa fazer isso, talvez alguém mais experiente saiba te informar corretamente. Obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts