Recursão em C

Publicado por Perfil removido em 21/09/2011

[ Hits: 7.387 ]

 


Recursão em C



É muito importante para quem se interessa por programação, conhecer todos os principais "artifícios" e possibilidades disponíveis. Dentre eles, um muito citado é a recursão, que apesar de, teoricamente, ser simples, na prática é preciso exercitar exaustivamente essa questão.

A recursão é muito conhecida por praticantes de programação funcional, e a utilizam quando se trabalha com Haskell dentre outras. Recursão é uma função, ou procedimento, que chama a si mesma no próprio decorrer da função, fazendo com que na hora da chamada, a função comece a ser executada novamente com parâmetros diferentes da anterior. E essa função chama a si mesma até que o caso base seja chamado.

Vamos exemplificar com o lendário exercício Fatorial, conhecido por todos na área de programação.

#include <stdio.h>
int fat (n){ //Uma função com parâmetro n é declarada, na qual o n é informado pelo
usuário.

   if ((n==1) || (n==0)) return 1; //Esse é o caso base da função, quando o n for reduzido a 1, a função termina a recursão.
   else
      return fat(n-1)*n; //Perceba que aqui ocorre a função fat é chamada novamente, mas ao invés de n, é chamada com (n-1)
       //Isso ocorre até que o n seja igual ao nosso caso base, no caso 1.
}

main (){ //Função main(), que chama fat pela primeira vez.
   int n;
   printf("Informe o número que deseja obter o fatorial:\n");
   scanf("%d",&n);
    printf("O fatorial de %d é %d \n",n,fat (n));
}

Compare agora nosso algoritmo feito com recursão e algum algoritmo qualquer com repetições, encontramos uma diferença substancial no tamanho do código. Na área de scripts, postei outro código em C utilizando a recursão, dessa vez abordando a série Fibonacci, estude os códigos e poste suas dúvidas, ou mande e-mails, que terei prazer em respondê-las.

Abraços.

Outras dicas deste autor

Ovos de páscoa

Gmail Backup - Ótima ferramenta para fazer backup de seu Gmail

Arch Linux - Configurando Wi-Fi com wifi-menu

OpenOffice.org em português do Brasil no Linux

Instalando Spotify no Debian 9 Stretch

Leitura recomendada

Instalando a biblioteca libxml2

Fatorial usando recursividade

Site para quem está iniciando em C

Compilando .EXEs no Linux (C/C++)

Incluindo paths para os seu próprios headers

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts