[英]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.