反平行四边形

时间:2015-11-06 02:24:21

标签: java

我正在努力使输出像这样:

enter image description here

我知道问题出在第三个循环中,但我不知道如何使间距适用于此。

import java.util.Scanner;

public class Tester {

    public static void main(String[] args){

        Scanner in = new Scanner(System.in);
        int x, y;
        System.out.print("Enter the number of rows: ");
        x = in.nextInt();
        System.out.print("Enter the number of stars: ");
        y = in.nextInt();

        //loop for x lines
        for(int i = 0; i < x; i++){

            //loop for y stars
            for(int j = 0; j < y; j++){
                System.out.print("* ");
            }

             System.out.println();

             for(int l = 0; l <= i; l--){
                 System.out.print(" ");
             }
        }
    }
}

4 个答案:

答案 0 :(得分:0)

您必须重新排序for循环。请注意下面给定的ode中第二个for循环的条件变化:

for(int i = 0; i < x; i++){

       for(int l = 0; l <= x-i; ++l){
             System.out.print(" ");
         }

        //loop for y stars
        for(int j = 0; j < y; j++){
            System.out.print("* ");
        }

         System.out.println();


    }

答案 1 :(得分:0)

    for (int i = 0; i < x; i++){
         for (int j = x-1; j > i; j--) {
             System.out.print(" ");
         }
         for(int j = 0; j < y; j++){
             System.out.print("*");
         }
          System.out.println();
     }

答案 2 :(得分:0)

另一种方式:

    String stars = String.format("%0" + y + "d", 0).replace('0', '*');
    for (int i=x; i > 0; i--)
    {
       System.out.println(String.format("%0$"+i+ "s", ' ')+stars);
    }
    System.out.println(stars);

答案 3 :(得分:0)

你需要做几件事。

第一个是将最后一个嵌套for循环(打印空格的循环)移动到第一个for循环的开头。您还需要删除已添加到打印星号的for循环的空间。

然后,对于你向我们展示的输出,你需要在结束时开始主循环并向后循环。

尝试以下方法:

public static void main (String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.print("Enter the number of rows: ");
    int x = in.nextInt();
    System.out.print("Enter the number of stars: ");
    int y = in.nextInt();

    //loop for x lines
    //This starts at x and goes toward 0
    for(int i = x; i > 0; i--){
        //Insert spaces based on line number
        //This is at the beginning now
        for (int s = 0; s < i; s++)
            System.out.print(" ");

        //Print y stars
        //Removed the space after the asterisk
        for(int j = 0; j < y; j++)
            System.out.print("*");

        System.out.println();
    }
}

经过测试here并匹配第一张图片中的输出