添加char作为数字的次数

时间:2015-08-31 15:00:03

标签: java string char

所以我需要创建一个用户输入高度的程序,并使用嵌套循环输出以下形状:

        *
      * * *
    * * * * *
  * * * * * * *
* * * * * * * * * 

我想让它发挥作用的想法是使用一个字符作为黑色空间,并在给定高度时将其与正确形状所需的空间对应。但是,我在遇到它时遇到了麻烦。如何制作字符,在同一行上运行一定次数。我希望它与我的' 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
        }
    }
}

}

提前感谢您的任何建议!

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();

}