Escriba un programa Java que solicite un número entero entre 2 y 10 que además sea impar.
En base al número debe formar un rombo invertido
package com.ejemplo.main;
import java.util.Scanner;
public class Rombo {
int[] array = null;
int num = 0;
int filas = 0;
public static void main(String[] args) {
Rombo r = new Rombo();
r.cargaRombo();
}
public void cargaRombo() {
Scanner sc = new Scanner(System.in);
System.out.println("Ingrese un numero IMPAR entre 2 y 10 :");
num = sc.nextInt();
if ( num >= 2 && num <= 10 && (num % 2 != 0 )) {
imprimeROmbo();
} else {
System.out.println("El numero NO ESTA entre 2 y 10 ... BYE");
}
}
public void imprimeROmbo() {
// El numero es el centro de la fila externa del rombo
boolean llegamos_a_uno = false;
Boolean no_llegamos_al_numero = true;
int num_aux1 = 0;
int num_aux2 = 0;
String tabs = "\t";
num_aux1 = num;
do {
System.out.print(tabs);
num_aux2 = num_aux1;
for (int i=1; i <= num_aux2; i++ ) {
System.out.print( i + "\t" );
}
System.out.print("\n");
num_aux1 = num_aux1 - 2;
tabs = tabs + "\t";
if ( num_aux1 < 1 ) {
llegamos_a_uno = true;
}
} while ( !llegamos_a_uno );
// num_aux se quedo en -1
num_aux2 = 1;
tabs = tabs.substring(1);
// Ahora imprimimos al reves
while ( no_llegamos_al_numero ) {
// a tabs hay que quitarle un TAB
tabs = tabs.substring(1);
System.out.print(tabs);
num_aux2 = num_aux2 + 2;
for (int i=1; i <= num_aux2; i++ ) {
System.out.print( i + "\t" );
}
System.out.print("\n");
if ( num_aux2 == num ) {
no_llegamos_al_numero = false;
}
}
}
}
No hay comentarios:
Publicar un comentario