3
respostas

Apenas uma ajuda pra quem travou aqui como eu!

Tive muita dificuldade para entender como o while funcionava.... então fiz comentários linha a linha para entender... desejo compartilhar o code acho que pode ajudar os demais amigos!


public class ConjecturaDeCollatz {

    public static void main(String[] args) {

        int entrada = 13;
        System.out.println("Iniciando...\n");

        while (entrada != 1) {
            // 13 true
            // 40 true
            // 20 true
            // 10 true
            // 5 true
            // 16 true
            // 8 true
            // 4 true
            // 2 true
            // 1 false (não entra no while)

            System.out.print(entrada + " > ");
            // print 13 >
            // print 40 >
            // print 20 >
            // print 10 >
            // print 5 >
            // print 16 >
            // print 8 >
            // print 4 >
            // print 2 >

            if (entrada % 2 == 0) {
                entrada = entrada / 2;
                // false
                // 20 = 40 / 2
                // 10 = 20 / 2
                // 5 = 10 / 2
                // false
                // 8 = 16 / 2
                // 4 = 8 / 2
                // 2 = 4 / 2
                // 1 = 2 / 2
            } else {
                entrada = ((3 * entrada) + 1);
                // 40 = (3 * 13) + 1
                // false
                // false
                // false
                // 16 = (3 * 5) + 1
                // false
                // false
                // false
                // false
            }
        }

        System.out.print(entrada);
        // sendo falso... exibe o valor de entrada aqui
        // print 1
    }
}
3 respostas

Oi Fellipe, obrigado por compartilhar. Esse tipo de atitude faz com que todo mundo da plataforma consiga melhorar!!

Bom dia, não sei o que há de errado com meu código, segue abaixo:

insira seu código aquiimport java.util.Scanner;

public class ExercicioExtra {

public static void main(String[] args) {

int numero;

Scanner scan = new Scanner(System.in);

System.out.println("Digite um numero: ");

numero=scan.nextInt();

if (numero%2==0) {

while (numero!=1) {

System.out.println(numero);

numero=numero/2;

} } else if (numero%2!=0){

while(numero!=1) {

numero = ((3 * numero) + 1);

System.out.println(numero); }

}

}

}

Boa fellipe, gostei da sua ideia. Caro Gabriel não seria interessante abrir um post com sua dúvida?