Ресунок через цикл for в java

У меня есть 2 части рисунка. Нужно, чтобы тот крестик, который в самом низу, выводился над тем ромбом сверху (значение n указывается пользователем, то есть это размер)

              n= n/2 + 1;
              int i=0;
              
              for(i=0;i<n;i++)
              {
                  for(int k=i;k<n;k++)
                  System.out.print("  ");
                  
                  for(int j=0;j<=2*i;j++)
                  {
                  
                    System.out.print("@ ");
                  }
         
                  System.out.println();
              }
 
              n=i;
             
              for(i=n-1;i>0;i--)
              {`введите сюда код`
                 
                  for(int k=i;k<n+1;k++)
                  System.out.print("  ");
         
                  
                  for(int j=2*i;j>1;j--)
                  {
                  
                    System.out.print("@ ");
                  }
         
                  System.out.println();
              }
         
        
for (int o = 0; o < 5; o++) {
     for(int y = 0 ; y < 5; y++) {
         if(o == y || y + o == 5-2) {
             System.out.print("*");
         }else {
             System.out.print(" ");
         }
     }
     System.out.println();
         
}

Ответы (1 шт):

Автор решения: Serwiswriter

Думаю как-то так:

import java.util.Scanner;

public class ИмяКласса {
    public static void main(String[] args) {

        //задаём размеры ромбу
        Scanner scanner = new Scanner(System.in);
        System.out.println("Введите число n: ");
        int figureSize=scanner.nextInt();
        scanner.close();
        int figureEvenNumber=0;

        //вычисляем чётность размеров для последующих построений 
        if(figureSize%2==0){
            figureEvenNumber=figureSize;
        }else{figureEvenNumber=figureSize-1;}

        //задаём через цикл расстояние для верхней фигуры в виде буквы Х
        String string = " ";
        while(figureEvenNumber>0){
            string=string+" ";
            figureEvenNumber--;
        }

        //делаем саму букву Х
        for(int i=0;i<4;i++){
            if(i==0 || i==3){
                System.out.println(string+"*  *");
            } else{
                System.out.println(string+" ** ");
            }
        }

        //делаем верхнее основание ромба
        figureSize=figureSize/2 + 1;                        

        for(int i=0;i<figureSize;i++)                    
        {
            for(int k=i;k<figureSize;k++)
            {
                System.out.print("  ");
            }
        
            for(int j=0;j<=2*i;j++)
            {
                System.out.print("@ ");
            }

            System.out.println();
        }

        //делаем нижнее основание ромба
        for(int i=figureSize-1;i>0;i--)
        {  
            for(int k=i;k<figureSize+1;k++)
            System.out.print("  ");

        
            for(int j=2*i;j>1;j--)
            {
        
              System.out.print("@ ");
            }

            System.out.println();
        }
    }
}
→ Ссылка