Ресунок через цикл 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();
}
}
}