Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Um método recursivo que calcula o número de Fibonacci para um dado índice - Lista de Exercícios Resolvidos de JavaQuantidade de visualizações: 6871 vezes |
Pergunta/Tarefa: Observe a série de números Fibonacci abaixo: Série: 0 1 1 2 3 5 8 13 21 34 55 89 Índice: 0 1 2 3 4 5 6 7 8 9 10 11 Este algorítmos consiste em, dado um determinado índice, retornar o número de Fibonacci correspondente. Recursivamente, o cálculo pode ser feito da seguinte forma: fib(0) = 0; fib(1) = 1; fib(indice) = fib(indice - 2) + fib(indice - 1); sendo o indice >= 2 Os casos nos quais os índices são 0 ou 1 são os casos bases (aqueles que indicam que a recursividade deve parar). Seu método deverá possuir a seguinte assinatura: public static int fibonacci(int indice){ // sua implementação aqui } Informe o índice: 6 O número de Fibonacci no índice informado é: 8 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos solicitar o índice do número de Fibonacci System.out.print("Informe o índice: "); // lê o índice int indice = Integer.parseInt(entrada.nextLine()); // calcula o número de Fibonacci no índice informado System.out.print("O número de Fibonacci no índice informado é: " + fibonacci(indice)); System.out.println("\n"); } // método recursivo que o número de Fibonacci em um determinado índice public static int fibonacci(int indice){ if(indice == 0){ // caso base; interrompe a recursividade return 0; } else if(indice == 1){ // caso base; interrompe a recursividade return 1; } else{ // efetua uma nova chamada recursiva return fibonacci(indice - 1) + fibonacci(indice - 2); } } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Java + MySQL ::: Metadados da Base de Dados (Database Metadata) |
Java MySQL - Como obter uma lista das funções numéricas (matemática) suportadas pelo MySQL usando o método getNumericFunctions() da interface DatabaseMetaDataQuantidade de visualizações: 5582 vezes |
Em algumas situações gostaríamos de, via código, obter uma lista das funções numéricas, ou seja, funções matemáticas, suportadas pelo MS SQL Server. Para isso podemos usar o método getNumericFunctions() da interface DatabaseMetaData. É importante observar que, no Sun Microsystem's JDBC Driver for MySQL, a interface DatabaseMetaData é implementada por uma classe do mesmo nome, no pacote com.mysql.jdbc.DatabaseMetaData. E esta classe implementa o método getNumericFunctions() de forma a retornar a lista de funções numéricas separadas por vírgulas. Veja um trecho de código Java no qual listamos todas as funções numéricas suportados no MySQL 5.0: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudosbancodados; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.SQLException; public class EstudosBancoDados{ public static void main(String[] args) { // strings de conexão String databaseURL = "jdbc:mysql://localhost/estudos"; String usuario = "root"; String senha = "osmar1234"; String driverName = "com.mysql.jdbc.Driver"; try { Class.forName(driverName).newInstance(); Connection conn = DriverManager.getConnection(databaseURL, usuario, senha); // vamos obter um objeto da classe com.mysql.jdbc.DatabaseMetaData DatabaseMetaData dbmd = conn.getMetaData(); // vamos obter a lista de funções numéricas disponíveis // nesta versão do MySQL String funcoesNumericas = dbmd.getNumericFunctions(); // como a lista de funções está separada por vírgulas, vamos obter // uma matriz de strings String funcoes[] = funcoesNumericas.split(","); // vamos mostrar o resultado for(int i = 0; i < funcoes.length; i++){ System.out.println(funcoes[i]); } } catch (SQLException ex) { System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } catch (Exception e) { System.out.println("Problemas ao tentar conectar com o banco de dados: " + e); } } } Ao executarmos este código teremos o seguite resultado: ABS ACOS ASIN ATAN ATAN2 BIT_COUNT CEILING COS COT DEGREES EXP FLOOR LOG LOG10 MAX MIN MOD PI POW POWER RADIANS RAND ROUND SIN SQRT TAN TRUNCATE |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercícios Resolvidos de Java - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versaQuantidade de visualizações: 7472 vezes |
Exercício Resolvido de Java - POO - Programação Orientada a Objetos - Uma classe Temperatura que converte graus Celsius em Fahrenheit e vice-versa Pergunta/Tarefa: Escreva uma classe Java chamada Temperatura que converterá graus Celsius em Fahrenheit e vice-versa. Esta classe não possuirá nenhuma variável, nem de instância nem de classe, somente dois métodos, que deverão ter as seguintes assinaturas: double celsiusParaFahrenheit(double) double fahrenheitParaCelsius(double) Para facilitar a resolução, seguem abaixo as regras de conversão: Celsius para Fahrenheit: F = (1,8 x C) + 32 Fahrenheit para Celsius: C = (F - 32) / 1,8 Depois de escrever a classe Temperatura, use o método main() da classe principal da aplicação Java para testar suas funcionalides. Sua saída deverá ser parecida com: Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Código para a classe Temperatura.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Temperatura { // converte de Celsius para Fahrenheit public double celsiusParaFahrenheit(double c){ double f = (1.8 * c) + 32; return f; } // converte de Fahrenheit para Celsius public double fahrenheitParaCelsius(double f){ double c = (f - 32) / 1.8; return c; } } Código para a classe Principal.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.Scanner; public class Principal{ public static void main(String args[]){ // vamos criar um objeto da classe Temperatura Temperatura t = new Temperatura(); // vamos fazer a leitura do usuário Scanner entrada = new Scanner(System.in); // primeiro de Celsius para Fahrenheit System.out.print("Informe o grau em Celsius: "); double celsius = Double.parseDouble(entrada.nextLine()); System.out.println(celsius + " graus Celsius equivale a " + t.celsiusParaFahrenheit(celsius) + " graus Fahrenheit."); // agora de Fahrenheit para Celsius System.out.print("Informe o grau em Fahrenheit: "); double fahrenheit = Double.parseDouble(entrada.nextLine()); System.out.println(celsius + " graus Fahrenheit equivale a " + t.fahrenheitParaCelsius(fahrenheit) + " graus Celsius."); } } |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Manipulação de arquivos em Java - Como ler o conteúdo de um arquivo um byte de cada vezQuantidade de visualizações: 11034 vezes |
Nesta dica mostrarei como ler texto de um arquivo um byte de cada vez. Para isso vamos usar o método readByte() da classe DataInputStream, do pacote java.io. Note que este método retorna um inteiro com sinal na faixa de -128 até 127. Neste exemplo faremos um cast do byte lido para um char, já que estaremos lendo um arquivo de texto. Sim, é isso mesmo que você pensou. Se houver caracteres acentuados no arquivo texto, os mesmo não serão exibidos corretamente. A idéia do exemplo é mostrar o funcionamento do método readByte(). Veja o código Java completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.io.*; public class Estudos{ public static void main(String[] args){ try { DataInputStream in = new DataInputStream(new BufferedInputStream( new FileInputStream("C:\\java\\conteudo.txt"))); while (in.available() != 0){ System.out.print((char) in.readByte()); } } catch (IOException e){ System.out.println("Erro: " + e.getMessage()); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Primeira linha do arquivo Segunda linha do arquivo Terceira linha do arquivo |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Fórmulas da Física - Fórmula da Velocidade - Como calcular a velocidade quando temos a distância percorrida e o tempo gasto |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |