Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Funcoes.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Funcoes; /** * * @author joao */ public class Funcoes { //Retorna a exponenciação de a por b de forma recursiva public double expRec(double a, double b) { if (b == 0) { return 1; } else if (b == 1) { return a; } else { return a * expRec(a, b - 1); } } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //Retorna o Maximo divisor comum de forma recursiva public double maxDc(double x, double y) { return (y == 0) ? x : maxDc(y, x % y); } //------------------------------------------------------------------------------ //Retorna o resto da divisao de x/y de forma recursiva public int restoDiv(int x, int y) { if (x == y) { return 0; } return (y > x) ? x : restoDiv((x - y), y); } //------------------------------------------------------------------------------ //Retorna o multiplicação de de x*y de forma recursiva public int multiplicacao(int x, int y) { return (y == 1) ? x : x + multiplicacao(x, y - 1); } //------------------------------------------------------------------------------ //Retorna o somatoria de de n n Vezes de forma recursiva public double somatoriaRec(double n) { return (n == 1) ? n * n : somatoriaRec(n - 1) + (n * n); } //------------------------------------------------------------------------------ //Calcula a serie de fibonacci para o indice x de forma recursiva public double fibonacci(double x) { return (x == 0 || x == 1) ? 1 : fibonacci(x - 1) + fibonacci(x - 2); } //------------------------------------------------------------------------------ //Calcula soma de um intervalo x y de forma recursiva public double somaIntervalo(double x, double y) { if (y == x) { return x; } return (x < y) ? somaIntervalo(x, y - 1) + y : somaIntervalo(y, y + 1) + y; } //------------------------------------------------------------------------------ //Retorna true para numeros pares e false para impares de forma recursiva public boolean isPar(int num) { if (num % 2 == 1) { return false; } else { return (num % 2 == 0 || num == 0) ? true : isPar(num - 1); } } } Recursao.java /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package recursao; import Funcoes.Funcoes; /** * * @author joao */ public class Recursao { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int k=2; Funcoes funcoes = new Funcoes(); for(int i=1;i<5;i++){ k+=i; System.out.println("Exponenciacao de ["+i+"] por ["+k+"] =["+funcoes.expRec(i, k)+"]"); System.out.println("Resto da divisao entre ["+k+"] e ["+i+"] =["+funcoes.restoDiv(k, i)+"]"); System.out.println("Multiplicacao entre ["+i+"] e ["+k+"] =["+funcoes.multiplicacao(i, k)+"]"); System.out.println("Maximo Divisor comum entre ["+k+"] e ["+i+"] =["+funcoes.maxDc(k, i)+"]"); System.out.println("Soma do intervalo ["+i+"] a ["+k+"] =["+funcoes.somaIntervalo(i, k)+"]"); System.out.println("Soma recursiva ["+k+"]x =["+funcoes.somatoriaRec(k)+"]"); System.out.println("Fibonacci de ["+k+"] =["+funcoes.fibonacci(k)+"]"); String parum =(funcoes.isPar(i))?" PAR":" IMPAR"; System.out.println("O numero ["+i+"] e"+parum); parum =(funcoes.isPar(k))?" PAR":" IMPAR"; System.out.println("O numero ["+k+"] e"+parum); System.out.println("------------------------------------------------------------------------"); } } }
Compartilhar