Olá Pessoal,
Meu primeiro post aqui, estou com muita dificuldade em entender recursividade. O professor propôs um exercício que deverá ser criado um método recursivo que deve ser gerada uma sequencia de números super crescentes.
Dado: Informar um número inicial e um número final, o próximo número deverá ser maior que a soma dos dois anteriores, exemplo:
1 e 10, resposta será 1,2,4,7.
Eu tentei desenvolver e não consegui nada com nada, se alguém puder dar um help.
package Recursividade;
import javax.swing.JOptionPane;
public class SuperCrescente {
public static void main(String[] args) {
SuperCrescente superC = new SuperCrescente();
int numeroInicial = 0;
int numeroFinal = 0;
numeroInicial = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor inicial:"));
numeroFinal = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor inicial:"));
superC.superCrescente(numeroInicial, numeroFinal);
}
public int superCrescente(int numeroInicial, int numeroFinal){
return superCrescenteRecursivo(numeroInicial, numeroFinal, 1, 0);
}
public int superCrescenteRecursivo(int numeroInicial, int numeroFinal, int contador, int numero){
if(numeroInicial == 0){
return numeroInicial;
}
else if(numero < numeroFinal){
numero = contador + ((numeroInicial -1) + (numeroInicial -2));
if(numero <= numeroFinal){
String achou = numero + " ";
System.out.println(achou);
}
return superCrescenteRecursivo(numeroInicial + 1, numeroFinal, contador + 1, numero);
}else{
return numero;
}
}
}