estudante

302 palavras 2 páginas
Recursividade
Prof. Tiago Massoni
Prof. Fernando Buarque
Prof. Byron Leite
Engenharia da Computação
Poli - UPE

Funções regulares
• Elementos





declaração (inclui parâmetros formais), chamada (inclui argumentos), corpo e retorno 2

Funções regulares

Func A

3

Funções recursivas
• Idênticas às regulares com uma diferença: – Chamada direta ou indireta à mesma função de dentro do seu corpo
– Exemplos a (parâmetros) {


a (parâmetros) {


b (parâmetros) {


a(argumentos);

b(argumentos);

a(argumentos);
}

} // direta

} // indireta

4

Funções recursivas

Func.
Func A

5

Funções definidas por elas mesmas • Uma função pode ter uma definição indireta • Exemplo
– f(0)=0
– f(x)= 2f(x-1)+x2

• Como escreveríamos esta função em
Java?
6

Recursão
• Definição especificada por um processo
• Caso base
• Chamada recursiva

• Exemplo: função fatorial
0! = 1
1! = 1
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6
...
n! = n * (n-1) * (n-2) ... * 1 se n>0 ou ainda n! = n * (n-1)!

7

Recursão x Iteração: fatorial prod =1;
...
for (x=n; x>0; x--) { if(n==0) prod *= x; fact = 1;
}
else { return (prod); fact = n*fat(n-1);
}
return fact;
8

Caso base e terminação
• Caso base: define quando a função recursiva deve parar
– Chamadas resolvidas sem recursão
– Sempre deve haver progresso em direção ao caso base
– Senão, círculo (estouro de pilha)

9

Exercício
• Escrever um programa em Java usando recursão que imprima a série de Fibonacci
0, 1, 1, 2, 3, 5, 8, 13, 21, 34... ou seja fib(0) = 0, fib(1) = 1, fib(2) = 1, ...
i.e. fib(n) = n, se n==0 ou n==1 fib(n) = fib(n-2) + fib(n-1), se n>= 2
10

Classe programa public class Fibonacci {
//metodos estaticos ... public static void main(String[] args){
//codigo que chama os metodos estaticos
...
}
}

11

Fibonacci iterativo public static int fibonacciIterativo(int n){ int soma = n; if (soma >= 2) {

Relacionados

  • Estudante
    4061 palavras | 17 páginas
  • Estudante
    5203 palavras | 21 páginas
  • estudante
    1826 palavras | 8 páginas
  • Estudante
    1976 palavras | 8 páginas
  • estudante
    4108 palavras | 17 páginas
  • Estudante
    4793 palavras | 20 páginas
  • estudantes
    7348 palavras | 30 páginas
  • estudante
    16461 palavras | 66 páginas
  • estudante
    1462 palavras | 6 páginas
  • Estudante
    1075 palavras | 5 páginas