Você está aqui: Java ::: Dicas & Truques ::: Recursão (Recursividade)

Como calcular fatorial em Java usando uma função recursiva

Quantidade de visualizações: 959 vezes
Sempre que estamos no assunto de recursão (ou recursividade), um dos primeiros exemplos que vêm à nossa mente é o cálculo de fatorial, pois seu entendimento é fácil e, dessa forma, podemos nos concentrar nos aspectos da função recursiva.

Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n.

O fatorial de um número n pode ser definido recursivamente da seguinte forma:

0! = 1;
n! = n x (n - 1)!; sendo n > 0


Entendida esta definição, veja agora o código Java completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Estudos {

  public static void main(String[] args) {
    // vamos calcular o fatorial dos número de 0 até 10
    for (int i = 0; i <= 10; i++) {
      System.out.printf("%2d! = %d\n", i, fatorial(i));
    }
  }

  // função recursiva para calcular o fatorial de um número
  public static int fatorial(int num) {
    if (num <= 1) {
      return 1;
    } 
    else {
      return num * fatorial(num - 1);
    }
  }
}

Ao executar este código nós teremos o seguinte resultado:

 0! = 1
 1! = 1
 2! = 2
 3! = 6
 4! = 24
 5! = 120
 6! = 720
 7! = 5040
 8! = 40320
 9! = 362880
10! = 3628800


Note que aqui nós calculamos e exibimos o fatorial dos números de 0 até 10.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Strings e Caracteres

Como testar a existência de um caractere em uma string e retornar sua posição em Java usando o método indexOf() da classe String

Quantidade de visualizações: 33 vezes
Nesta dica eu mostro como podemos usar o método indexOf() da classe String para pesquisar um caractere em uma palavra, frase ou texto e retornar a sua posição, ou seja, o seu índice dentro da string.

Se o caractere for encontrado, sua posição é retornada. Caso contrário o valor -1 é retornado.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Estudos{
  public static void main(String[] args){
    // vamos criar uma string
    String frase = "Gosto de programar em Java";
    
    // vamos testas se a string contém a letra "k"
    int pos = frase.indexOf('k');
    
    if(pos < 0){
      System.out.println("A string não contém a letra k");
    }
    else{
      System.out.println("A letra k foi encontrada na posicao: " + pos);
    }
     
    // fecha o programa
    System.exit(0);
  }
} 

Ao executar este código Java nós teremos o seguinte resultado:

A string não contém a letra k


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Ler um número inteiro na faixa 0-999 e mostrar a soma de seus dígitos

Quantidade de visualizações: 12771 vezes
Pergunta/Tarefa:

Escreva um programa Java que leia um inteiro na faixa 0-999 e mostre a soma de seus dígitos. Por exemplo, se o valor for 523, a soma de seus dígitos será 5 + 2 + 3 = 10. Seu programa deverá exibir a seguinte saída:

Informe um valor inteiro (0-999): 523
A soma dos dígitos é: 10
Resposta/Solução:

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)
----------------------------------------------------------------------

public static void main(String[] args){
  // não se esqueça de adicionar um import para a classe Scanner
  // import java.util.Scanner;

  // vamos criar um objeto da classe Scanner
  Scanner entrada = new Scanner(System.in);

  // vamos solicitar ao usuário que informe um valor inteiro
  // na faixa 0 a 999 (incluindo)
  System.out.print("Informe um valor inteiro (0-999): ");

  // vamos ler o valor informado
  int valor = Integer.parseInt(entrada.next());

  // vamos verificar se o valor está na faixa permitida
  if(valor < 0 || valor > 999){
    System.out.println("Valor fora da faixa permitida");
    System.exit(0);
  }

  // vamos obter o terceiro dígito
  int terceiro = valor % 10;
  // obtém os digitos restantes
  valor = valor / 10;

  // vamos obter o segundo dígito
  int segundo = valor % 10;
  // obtém os digitos restantes
  valor = valor / 10;

  // vamos obter o primeiro dígito
  int primeiro = valor % 10;
  // obtém os digitos restantes
  valor = valor / 10;

  // vamos obter a soma dos dígitos
  int soma = terceiro + segundo + primeiro;

  // vamos mostrar o resultado
  System.out.println("A soma dos dígitos é: " + soma);
}



Java ::: Dicas & Truques ::: Internacionalização e Localização (Internationalization, i18n, Localization, l10n)

Como usar os construtores da classe Locale em seus programas Java

Quantidade de visualizações: 9566 vezes
A classe Locale, na versão 1.6 do Java, apresenta 3 construtores. Aprender a usá-los corretamente trará muito mais flexibilidade aos seus códigos.

Veja o primeiro construtor:

Locale(String language)


Este construtor requer como argumento um código de língua válido, ou seja, um dos códigos de duas letras minúsculas definidos pelo ISO-639. Assim, "pt" é para o português, "en" para o inglês, e assim por diante. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.util.*;
import java.text.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // criamos um locale para o Brasil
    Locale localeBR = new Locale("pt");
    
    // vamos obter a data e hora atual
    Calendar agora = Calendar.getInstance();

    // vamos formatar de acordo com o formato de
    // data longa no português brasileiro
    DateFormat df = DateFormat.getDateInstance(
      DateFormat.FULL, localeBR);

    // vamos exibir o resultado
    System.out.println(df.format(agora.getTime())); 
  } 
}

Veja o segundo construtor:

Locale(String language, String country)


Este construtor requer a língua (language) e o país (country). O argumento country deve ser um código de país válido, ou seja, um dos códigos de duas letras maiúsculas definidos pelo ISO-3166. Assim, "BR" é para o Brasil, "PT" para Portugal, "US" para United States, e assim por diante. Este construtor que aceita o código da língua e o código do país é o mais frequentemente usado, uma vez que Brasil e Portugal possuem o mesmo código de língua, mas códigos de paises diferentes. Além disso, há países cujas regiões falam línguas diferentes, por exemplo, o Canadá. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.util.*;
import java.text.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // criamos um locale para o Brasil
    Locale localeBR = new Locale("pt", "BR");
    
    // vamos obter a data e hora atual
    Calendar agora = Calendar.getInstance();

    // vamos formatar de acordo com o formato de
    // data longa no português brasileiro
    DateFormat df = DateFormat.getDateInstance(
      DateFormat.FULL, localeBR);

    // vamos exibir o resultado
    System.out.println(df.format(agora.getTime())); 
  } 
}

Vejamos agora o terceiro construtor:

Locale(String language, String country, String variant)


Este construtor requer a língua, o país e a variante de localização. O argumento variante é um código específico relacionado ao fornecedor do sistema ou browser. Por exemplo: WIN para Windows, MAC para Macintosh, etc. Este último construtor não é usado comumente, razão pela qual o exemplo de seu uso fica pendente até a próxima revisão desta dica.


Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Processos e técnicas construtivas de instalações elétricas e hidráulicas

As instalações elétricas são compostas por dispositivos cuja função é distribuir a energia elétrica, proveniente da rede de abastecimento, entre os pontos de utilização. Analise as afirmativas a seguir, referentes aos dispositivos que compõem as instalações elétricas.

I. O quadro de distribuição consiste no dispositivo responsável pela divisão dos circuitos elétricos de uma edificação.

II. Os condutores consistem em fios ou cabos de cobre ou alumínio, cuja função é transmitir a corrente elétrica.

III. As tomadas de corrente são dispositivos cuja função é gerar corrente elétrica, permitindo a alimentação de equipamentos.

IV. Os dispositivos de manobra são aqueles que permitem a interrupção da transmissão da corrente elétrica.

Assinale a alternativa que apresenta somente as afirmativas corretas.

A) Apenas a afirmativa I está correta.

B) Apenas a afirmativa III está correta.

C) Apenas as afirmativas II e III estão corretas.

D) Apenas as afirmativas I, II e IV estão corretas.

E) As afirmativas I, II, III e IV estão corretas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Domínios de Deformações

Para o dimensionamento de elementos de concreto armado sujeitos a solicitações normais, é necessário utilizar as relações de tensão-deformação (σ x ε) dos materiais (concreto e aço), as relações de compatibilidade de deformações e as relações de igualdade entre os esforços atuantes e os esforços resistentes.

Analise as informações a seguir a respeito das relações referenciadas:

I) As relações tensão-deformação referem-se ao comportamento do concreto simples.

II) As relações de compatibilidade de deformações são o resultado da hipótese de que as seções permanecem planas até a ruptura e dos domínios de deformação.

III) As relações de igualdade entre os esforços atuantes e os resistentes correspondem às equações de equilíbrio de forças e momentos em uma seção de concreto armado.

Assinale e alternativa correta:

A) Somente a afirmação I está correta.

B) Somente as afirmações II e III estão corretas.

C) Somente a afirmação II está correta.

D) Somente a afirmação III está correta.

E) Somente as afirmações I e II estão corretas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual é o local correto para a inserção de códigos JavaScript em um documento HTML?

A) Seção <head>

B) Seção <body>

C) Os códigos JavaScript podem ser colocados tanto na seção <head> quanto na seção <body>
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Topografia

Rumo e Azimute

Concurso Analista Ambiental - Engenheiro Agrimensor.

Observe a figura abaixo e assinale a alternativa correta.



A) Rumo de A2: N59ºE e Azimute de A1: 59º

B) Rumo de A2: S37ºW e Azimute de A2: 217º

C) Rumo de A1: N23ºE e Azimute de A2: 337º

D) Rumo de A3: S48ºE e Azimute de A1: 37º

E) Rumo de A2: N37ºE e Azimute de A1: 132º
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Alvenaria: Técnicas construtivas

Em alvenaria de vedação (preenchimento dos vãos das estruturas de concreto armado), um procedimento padrão deve ser efetuado para evitar o surgimento de fissuras entre a parede e a viga que fica imediatamente acima. O levantamento da parede é interrompido a cerca de 20 cm do respaldo, e deixa-se curar por alguns dias antes do fechamento com tijolos inclinados ou cortados na diagonal. Esse procedimento é denominado:

A) Emboço.

B) Encunhamento.

C) Cisalhamento.

D) Escantilhão.

E) Chapisco.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 25 usuários muito felizes estudando em nosso site.