【发布时间】:2022-12-06 00:06:04
【问题描述】:
如果我想把下图做成水平的星星图案,怎么做呢?
我想做这个:
* *
*** ***
***** *****
*** ***
* *
但是在我的代码中这样打印(它不起作用)
*
***
*****
***
*
*
***
*****
*******
*********
*******
*****
***
*
这是我的代码 我尝试制作第一张图片以使用 Stringbuiler,它不起作用.. 请告诉我任何想法。
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder();
test(3,stringBuilder);
test(5,stringBuilder);
print(stringBuilder);
}
public static void test(int n,StringBuilder stringBuilder){
for(int i=0;i<n;i++)
{
for(int j=0;j<n-i-1;j++){
stringBuilder.append(" ");
}
for(int k=0;k<2*i+1;k++){
stringBuilder.append("*");
}
stringBuilder.append(System.getProperty("line.separator"));
}
for(int i=n-1;i>0;i--)
{
for(int j=n-1;j>=i;j--){
stringBuilder.append(" ");
}
for(int k=2*i-1;k>0;k--){
stringBuilder.append("*");
}
stringBuilder.append(System.getProperty("line.separator"));
}
}
public static void print(StringBuilder stringBuilder){
System.out.println(stringBuilder);
}
【问题讨论】:
-
请比“它不起作用”更具体。
-
如果你想水平打印,那么你不能先完成一个模式然后开始第二个,因为终端总是按行运行。您需要重新设计您的算法,以便完全打印应该位于第一行的每个部分,然后完全打印第二行,依此类推。
标签: java