java制作了一种使用星星创建X为正方形的图像的方法
我应该完成一个方法的内部
public static void printXinSquare(int width) {
}
宽度是要创建的行数
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
我试过制作四个独立的三角形,并以某种方式将它们连接起来,但没有成功
我还尝试为空间创建一个for循环,然后为星星添加一个for循环,但我很困惑,不知道如何做到这一点
为了做到这一点,正如我之前所说的,我试着制作单独的三角形
public static void printXinSquare(int width) {
for (int i = 1; i <= width/2+1; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = width/2+2; i <= width; i++) {
for (int j = width+1-i; j >= 1; j--) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
这将创建一个指向右侧的三角形
public static void printXinSquare(int width) {
for (int line = width/2+1; line >1; line--) {
for (int i = 1; i <= (line - 1); i++) {
System.out.print(" ");
}
for (int i = 1; i <= (width - 2 * line); i++) {
System.out.print("*");
}
System.out.println();
}
这将创建一个指向上方的三角形
这是我迄今为止尝试过的方法,但我认为这种方法行不通
我想我应该创建考虑到空间的循环
但我不知道怎么做,因为空间是对角的
如能帮助完成此方法,将不胜感激:)
# 1 楼答案
这应该以
10
的输入宽度打印出你问题中的确切图片它每次打印
*
时都会使用一个空格,以确保它像图片一样被适当地隔开,并在两种不同的情况下打印2空格,每种情况都代表一条对角线。这两起案件如下:if
行计数等于当前列计数,应该有空格而不是星号。这将创建从左上到右下的第一条对角线if
行计数等于width
减去当前列计数减去1
,它也应该是一个空格,而不是一个星号。这将创建第二条朝相反方向的对角线# 2 楼答案
试试这样:
在这种情况下,如果
'*'
不在三角形中,则打印' '
。内部三角形是条件(i==j || i+j==width)