欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

什么是楊輝三角

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

楊輝三角

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

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

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

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

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

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

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

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

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

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

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

清楚了這兩點之后,我們的思路就十分的清晰了。實現(xiàn)的方法有很多種,這里我打算用二維數(shù)組加雙重for循環(huán)來實現(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ù)值通過公式計算
          t[i][j]=t[i-1][j]+t[i-1][j-1];
        }
        // 輸出數(shù)組元素
        System.out.print(t[i][j]+"\t");     
      }
      //換行
      System.out.println();        
    }
  }
}

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

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

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

相關(guān)文章

  • SpringBoot如何設(shè)置404、500返回統(tǒng)一格式j(luò)son

    SpringBoot如何設(shè)置404、500返回統(tǒng)一格式j(luò)son

    這篇文章主要介紹了SpringBoot如何設(shè)置404、500返回統(tǒng)一格式j(luò)son問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • log4j與slf4j的使用與區(qū)別詳解

    log4j與slf4j的使用與區(qū)別詳解

    這篇文章主要介紹了log4j與slf4j的使用與區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • mybatis主從表關(guān)聯(lián)查詢,返回對象帶有集合屬性解析

    mybatis主從表關(guān)聯(lián)查詢,返回對象帶有集合屬性解析

    這篇文章主要介紹了mybatis主從表關(guān)聯(lián)查詢,返回對象帶有集合屬性解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • maven多模塊pom配置實例詳解

    maven多模塊pom配置實例詳解

    這篇文章主要介紹了maven多模塊pom配置實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • 最值得Java開發(fā)者收藏的網(wǎng)站

    最值得Java開發(fā)者收藏的網(wǎng)站

    這篇文章主要為大家分享了最值得Java開發(fā)者收藏的11個網(wǎng)站,幫助Java開發(fā)者提升編程能力
    2016-11-11
  • SpringBoot中@GetMapping注解的使用

    SpringBoot中@GetMapping注解的使用

    @GetMapping注解是Spring Boot中最常用的注解之一,它可以幫助開發(fā)者定義和處理HTTP GET請求,本文就來介紹一下SpringBoot中@GetMapping注解的使用,感興趣的可以了解一下
    2023-10-10
  • SpringBoot啟動自動終止也不報錯的原因及解決

    SpringBoot啟動自動終止也不報錯的原因及解決

    這篇文章主要介紹了SpringBoot啟動自動終止也不報錯的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java多線程的sleep休眠的實現(xiàn)

    Java多線程的sleep休眠的實現(xiàn)

    本文主要介紹了Java多線程的sleep休眠的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 搭建MyBatis開發(fā)環(huán)境及基本的CURD介紹

    搭建MyBatis開發(fā)環(huán)境及基本的CURD介紹

    這篇文章主要介紹了搭建MyBatis開發(fā)環(huán)境及基本的CURD,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 多數(shù)據(jù)源如何實現(xiàn)事務(wù)管理

    多數(shù)據(jù)源如何實現(xiàn)事務(wù)管理

    Spring中涉及三個核心事務(wù)處理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus,PlatformTransactionManager提供事務(wù)操作的基本方法,如獲取事務(wù)、提交和回滾
    2024-09-09

最新評論