java星号直角三角形

时间:2012-07-18 13:05:56

标签: java

我想尝试一个直角三角形星号。但我只有这个 输出:(我不能在这里放星号)

@ 
@@
@@@

我想要的是:

  @
 @@
@@@

这是我编写的代码:

 public class triangles {
public static void main( String[] args ) {

    for( int i = 1; i <= 10; i++ ){
        for( int j = 0; j < i; j++ ){
            System.out.print("*");

        }
        System.out.println();
    }

}
  }

非常感谢任何分享的想法。我是一个java新手。感谢。

5 个答案:

答案 0 :(得分:8)

您的代码永远不会打印任何空格,这应该是一个问题。

您可以使用这种简单的方法:

for (int i = 0; i < 3; i++) System.out.println("  @@@".substring(i, i+3));

逻辑非常简单:你有两个空格和三个符号的字符串。第一行输出需要是两个空格和一个符号,因此这是字符串的前三个字符。第二行应该是一个空格和两个符号 - 这是跳过第一行后的三个字符串;等等:你只是滑过字符串,每次从头开始跳过一个并接下来的三个字符。

Demo

答案 1 :(得分:4)

for(int i = 0; i < 9; i++) {
    for(int j = 9; j > 0; j--)
        System.out.print(i < j ? " " : "*");

    System.out.println();
}

答案 2 :(得分:0)

您的问题是您没有输出任何空白区域。计算首先偏移每一行需要多少空白,输出这个空格然后输出你的*

答案 3 :(得分:0)

尝试以下方法:

import java.io.*;
public class Star2 {

    public static void main(String[] args)throws IOException {

        InputStreamReader read = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(read);
        int i,j,n=0,k;
        System.out.print("How many stars you want to print in first row ? ");
        n=Integer.parseInt(in.readLine());
        for (i = 0; i<n; i=i+2)
        {
            for (j=i; j<n;j++)
            System.out.print ("*");
            System.out.println();
        }
    }

}

答案 4 :(得分:0)

试试这个:

public class PrintPyramidStar {  

   public static void main(String args[]) {  

    int c = 1;  
    for (int i = 1; i <= 5; i++) {  
        for (int j = i; j < 5; j++) {  
            System.out.print(" ");
        }  
        for (int k = 1; k <= c; k++) {  
            if (k % 2 == 0)  
                System.out.print(" ");  
            else  
                System.out.print("*");  
        }  
        System.out.println();  
        c += 2;  
    }  
  }  
}