簡體   English   中英

Java星號直角三角形

[英]java asterisk right triangle

我想嘗試一個直角三角形的星號。 但是我只得到以下輸出:(我不能在這里放置星號)

@ 
@@
@@@

我想要的是:

  @
 @@
@@@

這是我編寫的代碼:

 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新手。 謝謝。

您的代碼從不打印任何空格,這應該是一個問題。

您可以使用以下簡單方法:

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

邏輯很簡單:您的字符串帶有兩個空格和三個at符號。 輸出的第一行必須是兩個空格和一個at符號,因此這是字符串的前三個字符。 第二行應該是一個空格和兩個符號-即跳過第一行后的字符串的三個字符; 依此類推:您只需在字符串中滑動,每次都從頭開始再跳過一個,並取下三個字符。

演示版

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

    System.out.println();
}

您的問題是您沒有輸出任何空格。 首先計算需要偏移每行多少空白,然后輸出此空白,然后輸出*

請嘗試以下操作:

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

}

嘗試這個 :

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;  
    }  
  }  
}  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM