所以我需要创建一个用户输入高度的程序,并使用嵌套循环输出以下形状:
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
我想让它发挥作用的想法是使用一个字符作为黑色空间,并在给定高度时将其与正确形状所需的空间对应。但是,我在遇到它时遇到了麻烦。如何制作字符,在同一行上运行一定次数。我希望它与我的' x'第二个循环中的值。
import java.util.Scanner;
public class TrueArt
{
public static void main(String[] args)
{
Scanner sc = new Scanner (System.in);
int height;
char star = '*';
// Gets preferred height
System.out.println("Enter the height you want the masterpiece to be: ");
height = sc.nextInt();
for (int i=0; height > i; i--)
{
for (int x = 0; x < height; i++)
{
1 + x * 2
}
}
}
}
提前感谢您的任何建议!
答案 0 :(得分:3)
要获得所需的输出,可以使用此金字塔算法。
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int height = s.nextInt();
char star = '*';
for(int i = 0;i < height; i++) {
for(int j = 0; j < height - i; j++) {
System.out.print(" ");
}
for(int k = 0; k <= i; k++) {
System.out.print(star + " ");
}
System.out.println();
}
}
你需要稍微改变一下才能获得你想要的特定形状/样式金字塔,但这是为了学习目的。
答案 1 :(得分:0)
您的for loop
存在无限循环问题。尽量避免这种情况。
顺便说一下,另一个金字塔算法。干杯!
for (int i=height; i > 0; i--)
{
if(i!=1) {
for(int y = i-1; y>0; y--) {
System.out.print(" ");
}
}
for (int x = 0; x < 2*(height-i+1)-1; x++)
{
System.out.print("* ");
}
System.out.println();
}