最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用java實(shí)現(xiàn)楊輝三角的示例代碼

 更新時(shí)間:2018年01月09日 13:57:52   作者:白晝黯淡了星光  
本篇文章主要介紹了用java實(shí)現(xiàn)楊輝三角的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

之前有學(xué)弟問過我一道java的面試題,題目不算難。用java實(shí)現(xiàn)楊輝三角。我花了點(diǎn)時(shí)間整理了一下,發(fā)現(xiàn)挺有意思的,于是想寫下來分享一下。在寫代碼之前,我們先理清下面兩個(gè)問題。

什么是楊輝三角

楊輝三角,是二項(xiàng)式系數(shù)在三角形中的一種幾何排列。在我國南宋數(shù)學(xué)家楊輝1261年所著的《詳解九章算法》有提到過。在歐洲叫做帕斯卡三角形,如圖。

楊輝三角

楊輝三角的規(guī)律即原理

1.每個(gè)數(shù)等于它上方兩數(shù)之和。

2.每行數(shù)字左右對(duì)稱,由1開始逐漸變大。

3.第n行的數(shù)字有n項(xiàng)。

4.第n行數(shù)字和為2n-1。

5.第n行的m個(gè)數(shù)可表示為 C(n-1,m-1),即為從n-1個(gè)不同元素中取m-1個(gè)元素的組合數(shù)。

6.第n行的第m個(gè)數(shù)和第n-m+1個(gè)數(shù)相等 ,為組合數(shù)性質(zhì)之一。

7.每個(gè)數(shù)字等于上一行的左右兩個(gè)數(shù)字之和。可用此性質(zhì)寫出整個(gè)楊輝三角。即第n+1行的第i個(gè)數(shù)等于第n行的第i-1個(gè)數(shù)和第i個(gè)數(shù)之和,這也是組合數(shù)的性質(zhì)之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。

8.(a+b)n的展開式中的各項(xiàng)系數(shù)依次對(duì)應(yīng)楊輝三角的第(n+1)行中的每一項(xiàng)。

9.將第2n+1行第1個(gè)數(shù),跟第2n+2行第3個(gè)數(shù)、第2n+3行第5個(gè)數(shù)……連成一線,這些數(shù)的和是第4n+1個(gè)斐波那契數(shù);將第2n行第2個(gè)數(shù)(n>1),跟第2n-1行第4個(gè)數(shù)、第2n-2行第6個(gè)數(shù)……這些數(shù)之和是第4n-2個(gè)斐波那契數(shù)。

10.將各行數(shù)字相排列,可得11的n-1(n為行數(shù))次方:1=11^0; 11=11^1; 121=11^2……當(dāng)n>5時(shí)會(huì)不符合這一條性質(zhì),此時(shí)應(yīng)把第n行的最右面的數(shù)字"1"放在個(gè)位,然后把左面的一個(gè)數(shù)字的個(gè)位對(duì)齊到十位... ...,以此類推,把空位用“0”補(bǔ)齊,然后把所有的數(shù)加起來,得到的數(shù)正好是11的n-1次方。以n=11為例,第十一行的數(shù)為:1,10,45,120,210,252,210,120,45,10,1,結(jié)果為 25937424601=1110。

清楚了這兩點(diǎn)之后,我們的思路就十分的清晰了。實(shí)現(xiàn)的方法有很多種,這里我打算用二維數(shù)組加雙重for循環(huán)來實(shí)現(xiàn)。

demo代碼:

public class Yanghui {
  public static void main(String[] args) {
    // 創(chuàng)建二維數(shù)組
    int t[][]=new int[10][];
    // 遍歷二維數(shù)組的第一層
    for (int i = 0; i < t.length; i++) {
      // 初始化第二層數(shù)組的大小
      t[i]=new int[i+1];
      // 遍歷第二層數(shù)組
      for(int j=0;j<=i;j++){
        // 將兩側(cè)的數(shù)組元素賦值為1
        if(i==0||j==0||j==i){
          t[i][j]=1;
        }else{
          // 其他數(shù)值通過公式計(jì)算
          t[i][j]=t[i-1][j]+t[i-1][j-1];
        }
        // 輸出數(shù)組元素
        System.out.print(t[i][j]+"\t");     
      }
      //換行
      System.out.println();        
    }
  }
}

輸出在控制臺(tái)的結(jié)果如下:

這里只輸出了十行的楊輝三角。優(yōu)化一下,可以改成動(dòng)態(tài)的獲取行數(shù)。也可以變成正三角,只需在加一個(gè)循環(huán)用來計(jì)算空格。有興趣的同學(xué)可以嘗試一下。 ———來自java十八線程序猿

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java踩坑記錄之Arrays.AsList

    Java踩坑記錄之Arrays.AsList

    這篇文章主要給大家介紹了關(guān)于Java踩坑記錄之Arrays.AsList的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java實(shí)現(xiàn)消息隊(duì)列的兩種方式(小結(jié))

    java實(shí)現(xiàn)消息隊(duì)列的兩種方式(小結(jié))

    本文主要介紹了兩種java實(shí)現(xiàn)消息隊(duì)列的方式,利用Spring消息模板發(fā)送消息和Apache ActiveMQ官方實(shí)例發(fā)送消息,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • SprinBoot如何集成參數(shù)校驗(yàn)Validator及參數(shù)校驗(yàn)的高階技巧

    SprinBoot如何集成參數(shù)校驗(yàn)Validator及參數(shù)校驗(yàn)的高階技巧

    這篇文章主要介紹了SprinBoot如何集成參數(shù)校驗(yàn)Validator及參數(shù)校驗(yàn)的高階技巧包括自定義校驗(yàn)、分組校驗(yàn),本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Java攔截過濾器模式 (Intercepting Filter )實(shí)現(xiàn)方法

    Java攔截過濾器模式 (Intercepting Filter )實(shí)現(xiàn)方法

    攔截過濾器模式(Intercepting Filter Pattern)用于對(duì)應(yīng)用程序的請(qǐng)求或響應(yīng)做一些預(yù)處理/后處理,本文通過實(shí)例代碼介紹Java攔截過濾器模式 (Intercepting Filter )的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Java實(shí)現(xiàn)圖片比率縮放

    Java實(shí)現(xiàn)圖片比率縮放

    這篇文章主要為大家詳細(xì)介紹了Java通過Thumbnails實(shí)現(xiàn)圖片比率縮放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • java中ThreadPoolExecutor常識(shí)匯總

    java中ThreadPoolExecutor常識(shí)匯總

    這篇文章主要介紹了java中ThreadPoolExecutor常識(shí)匯總,線程池技術(shù)在并發(fā)時(shí)經(jīng)常會(huì)使用到,java中的線程池的使用是通過調(diào)用ThreadPoolExecutor來實(shí)現(xiàn)的,需要的朋友可以參考下
    2019-06-06
  • Maven項(xiàng)目執(zhí)行生命周期相關(guān)操作時(shí)出現(xiàn)錯(cuò)誤:does not match a valid id pattern問題

    Maven項(xiàng)目執(zhí)行生命周期相關(guān)操作時(shí)出現(xiàn)錯(cuò)誤:does not match a 

    當(dāng)pom文件中的gav標(biāo)簽格式錯(cuò)誤,如出現(xiàn)中文或空格,會(huì)導(dǎo)致與有效的id模式不匹配錯(cuò)誤,gav標(biāo)簽應(yīng)僅包含數(shù)字、字母和下劃線,解決方法是修改標(biāo)簽中的中文為英文,刪除多余空格,并刷新pom文件,例如,將中文"測試"改為英文"test"
    2024-09-09
  • 如何在IDEA中對(duì) hashCode()和 equals() 利用快捷鍵快速進(jìn)行方法重寫

    如何在IDEA中對(duì) hashCode()和 equals() 利用快捷鍵快速進(jìn)行方法重寫

    這篇文章主要介紹了如何在IDEA中對(duì) hashCode()和 equals() 利用快捷鍵快速進(jìn)行方法重寫,需要的朋友可以參考下
    2020-08-08
  • springboot使用redis實(shí)現(xiàn)從配置到實(shí)戰(zhàn)

    springboot使用redis實(shí)現(xiàn)從配置到實(shí)戰(zhàn)

    本文主要介紹了springboot使用redis ,采用的是RedisTemplate的形式,還有一種采用spring支持的注解進(jìn)行訪問緩存,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JavaCV使用ffmpeg實(shí)現(xiàn)錄屏功能

    JavaCV使用ffmpeg實(shí)現(xiàn)錄屏功能

    這篇文章主要介紹了JavaCV如何使用ffmpeg實(shí)現(xiàn)錄屏功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06

最新評(píng)論

兴文县| 新安县| 海林市| 三河市| 江西省| 景德镇市| 黑龙江省| 防城港市| 惠安县| 嘉鱼县| 岳普湖县| 花莲市| 灵璧县| 金门县| 灯塔市| 嘉义市| 通州市| 化隆| 绿春县| 同德县| 盘锦市| 彰化县| 田阳县| 临夏县| 藁城市| 习水县| 来安县| 连南| 中阳县| 大新县| 新民市| 宁明县| 专栏| 威远县| 九台市| 陇西县| 嵊泗县| 益阳市| 阳谷县| 闸北区| 和平县|