Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de Java - Um método recursivo que calcula o número de Fibonacci para um dado índiceQuantidade de visualizações: 7301 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:
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);
}
}
}
|
C++ ::: C++ para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em C++Quantidade de visualizações: 1842 vezes |
|
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: ![]() Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando C++. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código C++. Veja um trecho de código C++ completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior:
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[]){
// vamos declarar e construir uma matriz de três linhas
// e três colunas
int linhas = 3, colunas = 3;
int matriz[linhas][colunas];
// guarda a soma dos elementos na diagonal principal
int soma_diagonal = 0;
// vamos ler os valores para os elementos da matriz
for(int i = 0; i < linhas; i++){ // linhas
for(int j = 0; j < colunas; j++){ // colunas
cout << "Informe o valor para a linha " << i <<
" e coluna " << j << ": ";
cin >> matriz[i][j];
}
}
// vamos mostrar a matriz da forma que ela
// foi informada
cout << "\n";
// percorre as linhas
for(int i = 0; i < linhas; i++){
// percorre as colunas
for(int j = 0; j < colunas; j++){
cout << matriz[i][j] << " ";
}
// passa para a próxima linha da matriz
cout << "\n";
}
// vamos calcular a soma dos elementos da diagonal
// principal
for(int i = 0; i < linhas; i++){
for(int j = 0; j < colunas; j++){
if(i == j){
soma_diagonal = soma_diagonal + matriz[i][j];
}
}
}
// finalmente mostramos a soma da diagonal principal
cout << "\nA soma dos elementos da diagonal principal é: "
<< soma_diagonal << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
Python ::: Dicas & Truques ::: Data e Hora |
Como calcular a diferença de dias entre duas datas em PythonQuantidade de visualizações: 1727 vezes |
|
Nesta dica mostrarei como podemos usar retornar a diferença de dias entre duas datas na linguagem Python usando o objeto Date, do módulo DateTime. Note o uso do construtor date() para construir as duas datas e em seguida passamos estas duas datas para uma função personalizada numero_dias(), que retorna a quantidade de dias entre elas. Veja o código completo para o exemplo:
# vamos importar o objeto Date
from datetime import date
def main():
# vamos criar a data inicial e a data final
d1 = date(2022, 11, 10)
d2 = date(2022, 12, 23)
# vamos calcular a diferença de dias
diferenca = numero_dias(d1, d2)
# e mostramos o resultado
print("A primeira data é: {0}".format(d1))
print("A segunda data é: {0}".format(d2))
print("A diferença de dias entre as duas datas é: {0} dias".format(
diferenca))
# função que recebe duas datas e retorna a diferença
# de dias entre elas
def numero_dias(data1, data2):
return (data2 - data1).days
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: A primeira data é: 2022-11-10 A segunda data é: 2022-12-23 A diferença de dias entre as duas datas é: 43 dias |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Data e Hora |
Exercícios Resolvidos de Java - Datas e horas - Escreva um programa Java que mostre a hora atual no formato HH:MM:SSQuantidade de visualizações: 3375 vezes |
|
Exercício Resolvido de Java - Datas e horas - Escreva um programa Java que mostre a hora atual no formato HH:MM:SS Pergunta/Tarefa: Escreva um programa Java console que mostre a hora atual no formato HH:MM:SS, ou seja, algo parecido com 23:43:15. Dica: Você pode usar várias classes Java para obter a hora atual. Não precisa se prender à classe que usei na resolução do exercício. Sua saída deverá ser parecida com: ![]() Resposta/Solução:
package arquivodecodigos;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Estudos{
public static void main(String[] args){
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalDateTime agora = LocalDateTime.now();
System.out.println("A hora atual é: " + dtf.format(agora));
}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
C++ - Como definir a cor de fundo para um Edit Control em tempo de execução usando C++ e a API do Windows Delphi - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Delphi |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como remover itens repetidos de uma ArrayList usando um objeto da classe LinkedHashSet do Java JavaScript - Como converter uma string para letras minúsculas em JavaScript usando a função toLowerCase() do objeto String C# - Como abrir outros formulários de sua aplicação C# Windows Forms a partir do formulário principal Java - Como converter de octal para decimal usando o método parseInt() da classe Integer da linguagem Java |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







