gpt4 book ai didi

java - 在 Java 中使用 for 循环打印嵌套方 block

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:07 26 4
gpt4 key购买 nike

The pattern of stars that need to be printed问题是创建同心和嵌套的正方形,从最大正方形的边开始,给定为 N。就像在纸上画一个正方形内另一个正方形,直到不能再画正方形为止,方法是将边长减 4在每个正方形之后(2 个来自边的 startPos,2 个来自 endPos); N 是开始的正方形的大小。您必须使用乘法符号 ('*') 绘制边。

上图的比例(看起来更像长方形而不是正方形)可能不准确,但它会让你知道需要做什么..下面的代码是我试过的... This the exact pattern that needs to be printed..

public static void main(String[] args)
{
int N=9;
int iLo=0;
int iHi=N-1;
int jLo=0;
int jHi=N-1;

for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(i==0 || (i==N-1) || (j==0) || (j==N-1))
System.out.print('*');
else
{
if(i<=N/2)
{
if((i%2==0) && (i>=iLo) && (i<=iHi) && (j>=jLo) && (j<=jHi))
System.out.print('*');
else
if(i==iLo || i==iHi )
System.out.print('*');
else
System.out.print(' ');
}
else
{
if((i%2==0) && (i>=iLo) && (i<=iHi) && (j>=jLo) && (j<=jHi))
System.out.print('*');
else
System.out.print(' ');
}

}

}
System.out.print(" i-->"+i+" iLo-->"+iLo+" iHi-->"+iHi+" jLo-->"+jLo+" jHi-->"+jHi);
if(i%2>0)
{
if(i<=N/2)
{
jLo=jLo+2;
jHi=jHi-2;
iLo=iLo+1;
iHi=iHi-1;
}
else
{
jLo=jLo-2;
jHi=jHi+2;
iLo=iLo-1;
iHi=iHi+1;
}
}
else
{

}

System.out.println();
}

}

最佳答案

这可以通过使用每次递减 2 (i -= 2) 的 for 循环来解决,或者递归地在基本情况下将单个 * 打印到屏幕上,或者根本不打印。正如其他人发布的那样,除非每个方 block 之间有一些空间,否则您只会有一个实心方 block 。

编辑:看起来您可能不是在另一个正方形之上打印一个正方形,而是在另一个正方形的位置打印。然而,同样的策略适用。

EDIT2:您不需要对 i 和 j 使用嵌套的 for 循环。将每边的长度作为变量 i 的单个 for 循环就足够了。但是,您需要针对重复计算顶点进行调整。

为什么不尝试这样的事情:

// Assumes a cartesian coordinate system, origin at bottom left.
int startingX = 0;
int startingY = 0;
while( length > 0 ){
printHorizontally(length, startingX, startingY);
printVertically(length, startingX, startingY);
startingX += 2;
startingY += 2;
length -= 4;
}

private void printHorizontally(int length, int startingX, int startingY){
// Prints length *s to the screen in a horizontal line starting at the
// given points. Define printVertically similarly.
}

关于java - 在 Java 中使用 for 循环打印嵌套方 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11056918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com