Gostaria de escrever um algoritmo que tivesse essa saida:
1
2 3
4 5 6
7 8 9 10
a minha dificuldade está em como imprimir na linha apenas, 2, 3 e depois 4 números na linha.
Gostaria de escrever um algoritmo que tivesse essa saida:
1
2 3
4 5 6
7 8 9 10
a minha dificuldade está em como imprimir na linha apenas, 2, 3 e depois 4 números na linha.
Vejamos
Uma maneira simples é usar dois loops for.
Vejamos vc tem numeros de 1 a 10 em 4 linhas:
...
for(int i=1; i<= 10 ; i++){
System.out.print("" + i + " ");
...
if ( condição ) {
System.out.println();
...
}
}
Agora, que condição é essa? Pois bem, vc pode criar duas variaveis:
Quantidade de numeros dentro da linha (vamos chamar de n)
Quantidade maxima de numeros na linha (vamos chamar de max)
Antes do loop, n é zero (vc não imprimiu nada). E max é 1 (primeira linha cabe só um né).
Dentro do loop vc vai incrementar n (depois do print, por exemplo.
Se n == max vc chegou no fim da linha. Vc vai:
Imprimir uma "quebra de linha"
Vai incrementar max
Vai zerar n
Isso deve garantir o correto desenho q vc quer.
É possível tambem usar dois loops for, um pra linha e outro pra imprimir as colunas.
int x=1;
for(int linha=1;linha<=4;linha++){
for(int c=1;c<=linha;c++){
// imprime x
// incrementa x
}
// imprime nova linha
}
Basta ver se atende ao q vc quer. Tem outras formas usando mais matematica, etc
Obrigado pela resposta eu consegui fazer esse exercício depois que entendi como funciona um for dentro do outro, eis meu codigo
public class EstrelaNumero {
public static void main(String[] args) {
int auxiliar = 0;
int numero = 0;
for(int i = 0; i < 4; i++){
numero += 1;
System.out.println(numero);
if (numero == 10){
break;
}
for(int j = 0; j <= i; j++){
auxiliar = numero +1;
System.out.print(auxiliar);
numero = auxiliar;
}
}
}
}
nao entnedi pq vc colocou um break ai.