用迴圈列印出多種三角形

来源:http://www.cnblogs.com/ln-ing/archive/2016/12/12/6165835.html
-Advertisement-
Play Games

列印一排*,很簡單,列印下圖 也很簡單,代碼如下: 可是昨天想了好久都沒想到怎樣做到下麵圖片的樣子,今天突然就有了靈感 代碼很簡單,就是昨天想破了腦袋都想不出來,好笨啊我 第一行列印一個*,第二行行列印兩個*,大三行列印三個*,這樣分析就找到規律了,定義一個a=1,外層迴圈實現列印幾行,定義一個i= ...


列印一排*,很簡單,列印下圖

 

 

也很簡單,代碼如下: 

 1 public class Work10_3 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int a=0;
 9         while(a<4){
10             int i=0;
11             while(i<10){
12                 System.out.print("*");//列印*不換行
13                 i++;
14             }
15             System.out.println("");//換行
16             a++;
17         }
18     }
19 }

 

可是昨天想了好久都沒想到怎樣做到下麵圖片的樣子,今天突然就有了靈感

代碼很簡單,就是昨天想破了腦袋都想不出來,好笨啊我

第一行列印一個*,第二行行列印兩個*,大三行列印三個*,這樣分析就找到規律了,定義一個a=1,外層迴圈實現列印幾行,定義一個i=0,

實現內層迴圈列印*,當a=1時是第一行,想讓內層列印一個*,那麼內層迴圈條件是i<1,這樣就列印一個*,當a=2時,是第二行,想讓內

層列印兩個*,那麼內層就是i<2,這樣又不難看出i<a,於是代碼如下:

 1 public class Work10 {
 2     /**
 3      * @param args
 4      */
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         int a=1;
 8         while(a<25){
 9             int i=0;
10             while(i<a){
11                 System.out.print("*");//列印*不換行
12                 i++;
13             }
14             System.out.println("");//換行
15             a++;
16         }
17     }
18 }

 

很簡單的代碼,還可以改進一下。

有了一個靈感之後,就不能浪費,要充分鍛煉自己的才能,

於是我又列印了一條斜線

這是往右斜著的

 

讓內層列印空格(和上面內層列印*一樣),外層列印一個*,和剛纔外層有些微小區別

代碼如下:

 1 public class Work10_1 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int a=1;
 9         while(a<25){
10             int i=0;
11             while(i<a){
12                 System.out.print(" ");//列印空格不換行
13                 i++;
14             }
15             System.out.print("*\n");//列印*後換行
16             a++;
17         }
18     }
19 
20 }

 

 

 

這是往左斜著的,內層我定義i=25,a=1時列印24個空格,然後列印*換行,當a=2時,列印23個空格,然後列印*換行。。。。。代碼如下:

 

 1 public class Work10_2 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int a=1;
 9         while(a<25){
10             int i=25;
11             while(i>a){
12                 System.out.print(" ");//列印空格不換行
13                 i--;
14             }
15             System.out.print("*\n");//列印*後換行
16             a++;
17         }
18     }
19 
20 }

 

只有做不到的,沒有想不到的,看下圖

 

 

和上面一樣的方法,一個內層while列印空格,另一個列印*,

這個也很簡單,要是之前的我肯定不會這麼說,現在知道怎麼做了,就感覺簡單了,

代碼如下:

 

 1 public class Work10_4 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int a=1;
 9         while(a<25){
10             int i=25;
11             while(i>a){
12                 System.out.print(" ");//列印空格不換行
13                 i--;
14             }
15             int b=0;
16             while(b<a){
17                 System.out.print("*");//列印*不換行
18                 b++;
19             }
20             System.out.println("");//換行
21             a++;
22         }
23     }
24 
25 }

 

 

收回剛纔的話啊 下麵這個我沒想到,就是改了下代碼就變這樣了,其實我想做一個等腰三角形的

 

 

代碼如下:

 

 1 public class Work10_5 {
 2     public static void main(String[] args) {
 3         // TODO Auto-generated method stub
 4         int a=0;
 5         while(a<25){
 6             int i=25;
 7             while(i>a){
 8                 System.out.print(" ");//列印空格不換行
 9                 i--;
10             }
11             int b=0;
12             while(b<a){
13                 System.out.print("*");
14                 b+=2;//這裡和上面的不一樣
15             }
16             System.out.println("");
17             a++;
18         }
19     }
20 }

 

 

這個等腰三角形不好做啊 試了幾次沒有做出來,我要在定義一個變數試一試…

 

 

 

原來真是需要添加一個變數,添加以後瞬間就做出來了

 

 

分析一下,第一行先列印好多空格,然後一個*,第二行空格減少一個,*增加兩個,因為增加的速度不一樣,所以需要兩個變數分別控制兩個內層迴圈,空格的列印和之前的都一樣, 只是列印*的速度要增加,代碼如下:

 

 1         // TODO Auto-generated method stub
 2         int a=1;
 3         int c=1;
 4         while(a<25){
 5             int i=25;
 6             while(i>a){
 7                 System.out.print(" ");
 8                 i--;
 9             }
10             int b=0;
11             while(b<c){
12                 System.out.print("*");
13                 b++;
14             }
15             System.out.println("");
16             a++;
17             c+=2;
18         }
19     

 

然後我又想列印一個倒三角,然後很輕鬆就列印出來了

 

 

這個就不多說了,代碼如下:

 

 1 public class Work10_6 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int a=1;
 9         int c=1;
10         while(a<25){
11             int i=25;
12             while(i>a){
13                 System.out.print(" ");
14                 i--;
15             }
16             int b=0;
17             while(b<c){
18                 System.out.print("*");
19                 b++;
20             }
21             System.out.println("");
22             a++;
23             c+=2;
24         }
25     }
26 
27 }

 還能把這寫三角形組合起來,有多種組合方式,下麵提供一種做參考:

代碼如下:

 

 1 public class Work10_13 {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int a=1;
 9         int c=1;
10         while(a<20){
11             int i=20;
12             while(i>a){
13                 System.out.print(" ");
14                 i--;
15             }
16             int b=0;
17             while(b<c){
18                 System.out.print("*");
19                 b++;
20             }
21             System.out.println("");
22             a++;
23             c+=2;
24         }
25         int d=0;
26         int e=39;
27         while(d<20){
28             int i=0;
29             while(i<d){
30                 System.out.print(" ");//列印空格不換行
31                 i++;
32             }
33             int b=0;
34             while(b<e){ 
35                 System.out.print("*");
36                 b++;
37             }
38             System.out.println("");
39             d++;
40             e-=2;
41         }
42     }
43 }

------------------------------------------------------------------------------------------------------------------------------------------------------------

轉載請註明出處!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 線程通信: 如果線程A和線程B持有同一個MyObject類的對象object,這兩個線程會去調用不同的方法,但是它們是同步執行的,比如:線程B需要等待線程A執行完了methodA()方法之後,它才能執行methodB()方法。這樣,線程A和線程B就實現了 通信。 線程通信中要用到的方法:wait() ...
  • 驗證碼功能(個人理解): 個人思路:在a-z,A-Z,1-9生成n位隨機的數來構成新的驗證碼。 關於生成驗證碼的幾個小函數 a) 如: range(1,9) a) array_merge(數組1,數組2….) a) 隨機從數組中取出幾個下標返回一個數組 生成驗證碼代碼 <?php $arr1=ran ...
  • A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , where thing is either an iterator or a sequence, retu ...
  • 準備篇: 1、配置防火牆,開啟80埠、3306埠 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允許80埠通過防火牆) -A INPUT -m state ...
  • 第一篇博客。 克魯斯卡爾求最小生成樹思想:首先將n個點看做n個獨立的集合,將所有邊快排(從小到大)。然後,按排好的順序枚舉每一條邊,判斷這條邊連接的兩個點是否屬於一個集合。若是,則將這條邊加入最小生成樹,並將兩個點所在的集合合併為一個集合。若否,則跳過。直到找到n-1條邊為止。 #include<i ...
  • 這個系統是南方七星彩投註網站系統源碼,網站是採用php+MySQL的。基本實現功能如下:這個是普通的七星前四位的網投註平臺股東-總代理-代理-會員 這四個級別 網站大家只限於學習與交流,並且在合法的範圍使用,為了防止系統其他用戶,代碼有進行加密了,不便多多瞭解。 投註網站源碼附件: http://f ...
  • 對於一個有登錄限制(許可權限制)的網站,用戶輸入身份驗證信息以後,驗證成功後跳轉到登錄前的頁面是一項很人性化的功能。那麼獲取登錄前的頁面地址就很關鍵,今天在做一個yii2項目的登錄調試時發現了一些很有意思的問題,記錄下來。 1,場景描述 網站SiteA上的頁面Page2需要登錄後才能查看,Page2的 ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...