當前位置:首頁 » 編程語言 » 列印菱形java

列印菱形java

發布時間: 2025-04-05 17:35:53

1. java的for循環列印菱形公式是什麼

列印菱形其實很簡單,記得高中數學的公式么 Sn =a1+(n-1)*d
列印菱形一般分成兩部分,第一部分是列印正三角(一個空白三角+星星正三角),然後是倒三角(空白三角+星星到三角)

每個三角形分別用兩個for循環嵌套實現
例如:
for (int i = 1; i < 4; i++) {
for (int j = 1; j <= 1 + (i - 1) * 2; j++) {
System.out.print("*");
}
System.out.println();
}

兩個for循環,外面的for循環控制輸出的星星或空白的行,裡面的for循環控制輸出列。
例如上面外層for值分別是 1 2 3 。
而我們相輸出的列是 1 3 5 7.....
這個數列遞增值d=2 // Sn =a1+(n-1)*d
那麼套用公式裡面的循環就應寫for(int j=1;j<=1+(i-1)*2;j++)
就能輸出 1 3 5 7 個星星
倒三角也一樣 套公式
倒三角的d值為-2 ,
用了這個公式,輸出三角真的跟浮雲一樣簡單 // Sn =a1+(n-1)*d

2. java列印菱形。

public class test2 {public static void main(String[] args) {
//這個for執行四次
//第一次:列印9個空格,然後列印一個*,然後加個空格
//第二次:列印7個空格,然後列印三次 *加空格
//第三次:列印5個空格,然後列印五次 *加空格
//第四次:列印3個空格,然後列印7次 *加空格
for (int i = 0; i < 8; i++) { if (i % 2 == 0) { //這里表示只對i是偶數的時候執行下面的操作 for (int j = 0; j < 9 - i; j++) { //空格主要是給下面的行留空間,保證對齊
System.out.print(" "); //第一次列印7個空格,第二次5 } for (int j = 0; j < (i + 1); j++) { System.out.print('*' + " "); } System.out.println(); } } // 中部以及下半部分
//這個for也是四次
//第一次:列印4個空格,然後列印5次 空格加*
//第二次:列印6個空格,然後列印3次 空格加*
//第三次:列印8個空格,然後列印1次 空格加*
//第四次:列印10個空格,然後不打*
for (int i = 0; i < 8; i++) { if (i % 2 == 0) { for (int j = 0; j < 4 + i; j++) { System.out.print(" "); } for (int j = 0; j < 5 - i; j++) { System.out.print(" *"); } System.out.println(); } } } }

主要是你要理解思想就好理解了,分兩部分 首先搞清楚每次循環列印*的個數,上半部分是先打1個,然後是3個,然後是5個,然後是7個。下半部分是5個,3個,1個。至於那些9,8,5,4那些數字,都是拼湊起來列印空格的,決定圖形的對齊方式。
代碼里唯一的注釋是錯的,第一次實際上是打了9個空格,第二次是7個,第三次是5個,最後是3個。下半部分寫的有點亂。上半部分列印的是*加空格,下半部分列印的是空格加*,完全是為了拼湊出來的。你可以自己改改,不懂再問。

3. 編寫java程序,應用for循環列印菱形。

import java.util.Scanner;
public class v {
public static void main(String[] args) {
int h=1;
while(h<5){ //可重復執行5次
System.out.println("請輸入菱形的行數:"); //輸入你所需要的行數,也就是最多的那行的的個數

Scanner scanner = new Scanner(System.in);

int j=scanner.nextInt();
if(j%2==0) { // 判斷輸入的是否為偶數
System.out.println("由於輸入的是偶數,現已+1轉換成奇數!");
j=j+1; //如果是,+1轉換為奇數
}
int i,y,data1,data2;
for (i=1;i<=j;i++){
if(i<=(j+1)/2)
{data1=-i+(j+1)/2;
data2=i+(j+1)/2;}
else
{data1=i-(j+1)/2;
data2=-i+3*(j+1)/2;}
for ( y=1;y<=j;y++)
{ if(y<=data1||y>=data2)
System.out.print(" ");
else
System.out.print("*");}
System.out.println();
} h++;}
}
}
這個你可以隨便輸入大小。。。希望能夠採納。。。

熱點內容
win10系統如何鎖屏密碼 發布:2025-04-06 04:57:41 瀏覽:147
證明上傳 發布:2025-04-06 04:57:40 瀏覽:666
選廣告演算法 發布:2025-04-06 04:56:14 瀏覽:712
sql鞋子 發布:2025-04-06 04:46:28 瀏覽:747
資料庫ip和伺服器ip是同一個 發布:2025-04-06 04:44:07 瀏覽:565
編譯程序對應高級語言 發布:2025-04-06 04:42:38 瀏覽:350
牛刀雲編程 發布:2025-04-06 04:17:48 瀏覽:11
數控編程g73 發布:2025-04-06 04:09:39 瀏覽:258
關系型資料庫的結構 發布:2025-04-06 04:00:22 瀏覽:359
太原編程培訓 發布:2025-04-06 03:57:18 瀏覽:915