Meia piramide

2 respostas
javaprogramação
J

Bom estou trabalhando em um projeto de meia pirâmide porem eu nao estou conseguindo ter o resultado que eu quero . No caso o desejado no final e:
51
98 12
31 09 21
20 77 65 10

porem o que esta ocorrendo e a repeticao dos numeros em colunas:
51
51 98
51 98 12
51 98 12 31
51 98 12 31 09
51 98 12 31 09 21
51 98 12 31 09 21 20
51 98 12 31 09 21 20 77
51 98 12 31 09 21 20 77 65

Codigo:
package MiniProjeto;

public class MeiaPiramide {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	
	String numeros = ("51, 98, 12, 31, 09, 21, 20, 77, 65, 10");
	String[] piramide = numeros.split(",");
	int count = 0;
	

        for (int i = 0; i < piramide.length; i++) { 	
        	count++;
        	for (int j = 0; j < i; j++) { 
               	
            	System.out.print(piramide[j]); 
        	}
            System.out.println();
        	}

}

}

2 Respostas

S

Só um probleminha de lógica:

public static void main(String[] args) {
	int[] numeros = new int[] { 51, 98, 12, 31, 9, 21, 20, 77, 65, 10 };
    int numerosPorLinha = 1;
	int numerosNaLinha = 0;
	for (int numero : numeros) {
		System.out.printf("%02d", numero);
		numerosNaLinha++;
		if (numerosNaLinha == numerosPorLinha) {
			numerosNaLinha = 0;
			numerosPorLinha++;
			System.out.println();
		} else {
			System.out.print(" ");
		}
	}
}
V

@Jplayerkl
Boa noite campeão. Passando pra deixar minha versão do algoritmo.

public class HalfPyramid {

    public static void main(String[] args) {
        String[] piramide = "51,98,12,31,09,21,20,77,65,10".split(",");
        //versão com for
        for (int a = 0, c = 0; a < (piramide.length / 2); a++) {
            for (int b = 0; b < a; b++) {
                System.out.print(piramide[c++] + " ");
            }
            System.out.print("\n");
        }
        //versão usando stream
        int[] count = {0};
        IntStream.range(0, piramide.length / 2).forEach(a -> {
            IntStream.range(0, a).forEach(b -> System.out.print(piramide[count[0]++] + " "));
            System.out.print("\n");
        });
    }

}
Criado 6 de abril de 2020
Ultima resposta 9 de abr. de 2020
Respostas 2
Participantes 3