Recursividade: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
(Criou página com '=Recursividade= '''Recursividade''' é o ato de uma função chamar a si mesma. Uma função que calcule o '''fatorial''' de um número inteiro '''n''' (simbolizado por '''...')
 
Linha 1: Linha 1:
=Recursividade=
=Recursividade=


'''Recursividade''' é o ato de uma função chamar a si mesma.  
'''Recursividade''' é o ato de uma função chamar a si mesma<ref>http://pt.wikipedia.org/wiki/Recursividade</ref>.


Uma função que calcule o '''fatorial''' de um número inteiro '''n''' (simbolizado por '''n!''') é um bom exemplo de uma função recursiva.
Uma função que calcule o '''fatorial''' de um número inteiro '''n''' (simbolizado por '''n!''') é um bom exemplo de uma função recursiva.
Linha 24: Linha 24:
<source lang="c">
<source lang="c">
#include <stdio.h>
#include <stdio.h>
int fat(int n)
int fatorial(int n)
{
{
if (n)  
if (n)  
     return n*fat(n-1)
     return n*fatorial(n-1)
else return 1;
else return 1;
}
int main()
{
    int a;
    printf("\nEntre com um valor inteiro :");
    scanf("%d",&a);
    printf("O fatorial de %d é %d\n\n",a,fatorial(a));
    return(0);
}
}
</source>
</source>





Edição das 19h48min de 22 de outubro de 2014

Recursividade

Recursividade é o ato de uma função chamar a si mesma[1].

Uma função que calcule o fatorial de um número inteiro n (simbolizado por n!) é um bom exemplo de uma função recursiva.

Por exemplo:

5! = 5 . 4 . 3 . 2 . 1 = 120
4! = 4 . 3 . 2 . 1 = 24
3! = 3 . 2 . 1 = 6
2! = 2 . 1 = 2
1! = 1
0! = 1

Desta forma, posso expressar:

5! = 5 . 4!
4! = 4 . 3!
3! = 3 . 2!
2! = 2 . 1

Note que, nos exemplos acima, que:

n! = n . (n - 1)!
Função em C para calcular o fatorial de um número inteiro n
#include <stdio.h>
int fatorial(int n)
{
	if (n) 
  	  return n*fatorial(n-1)
	else return 1;
}

int main()
{
    int a;
    printf("\nEntre com um valor inteiro :");
    scanf("%d",&a);
    printf("O fatorial de %d é %d\n\n",a,fatorial(a));
    return(0);
}


Referências


--Evandro.cantu (discussão) 17h44min de 22 de outubro de 2014 (BRST)