所以我现在在做一个个人项目,我做了一个程序,可以打印出星星的图案。在其中一个星型上我需要这个输入
图1
* *
** **
******
********
**********
所以我用一种方法把这个打印出来
图2
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= i; j++)
{
System.out.print("*" + " ");
}
System.out.println("");
}
*
**
***
****
*****
另一种方法是打印这个
图3
for(int i=0; i<n; i++)
{
for(int j = 2 * (n-i); j >= 0; j--)
{
System.out.print(" ");
}
for(int j = 0; j<=i; j++)
{
System.out.print("* ");
}
System.out.println();
}
*
**
***
****
*****
我的问题是:
如何将第一个方法星号放在其他方法星号的旁边(参见图1)
这就是我目前得到的
public static void printStarsVictory(int n){
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= i; j++)
{
System.out.print("*" + " ");
}
System.out.println("");
}
for(int i=0; i<n; i++)
{
for(int j = 2 * (n-i); j >= 0; j--)
{
System.out.print(" ");
}
for(int j = 0; j<=i; j++)
{
System.out.print("* ");
}
System.out.println();
}
}
这就是目前正在印刷的东西
*
**
***
****
*****
*
**
***
****
*****
你知道怎么解决这个问题吗?提前谢谢!
4条答案
按热度按时间sigwle7e1#
我认为你走上了正确的道路你只需要将你的两个程序合并到内部for循环中:
示例用法
printStarsVictory(5)
:示例用法
printStarsVictory(12)
:nkhmeac62#
每一行都有不断增加的星数和不断减少的空间数。
e、 g.用于
n=5
第一排两边各有两颗星和8个空格。在每次迭代中,您可以增加星号和减少空格,并将它们打印在同一行上:
wgx48brx3#
在打印到输出之前,能否将它们保留在一个数组中:
iovurdzv4#
好吧,system.out.println()只打印到下一行,不打印到右边。唯一的办法就是创建一个新的算法。你应该把所有的东西都放到一个循环里。