C語言實現列印楊輝三角的方法詳細 三種方法

2022-09-26 10:12:25 字數 1627 閱讀 2217

目錄

列印楊輝三角(前n行)

楊輝三角是中國古代數學的傑出研究成果之一,它把二項式係數圖形化,把組合數內在的一些代數性質直觀地從圖形中體現出來,是一種離散型的數與形的結合。

楊輝三角的部分規律:

根據前三個規律,我們可以使用陣列法獲取楊輝三角;根據後兩個規律,我們可以使用公式法求出每行每列的數字。

陣列法思路:先根據設定的行數定義乙個二維陣列,然後使用乙個雙層迴圈,外層迴圈的因數為楊輝三角的行數,內層迴圈用來將楊輝三角每行的數字存入陣列。每行第一列和最後一列都是1,中間的數字等於它上方兩數之和。

最後再通過兩層迴圈將二維陣列中的數字列印。

公式法思路:由於楊輝三角滿足上面提到的第4點規律,所以我們可以直接定義乙個函式求出楊輝三角第n行的m個數的值。

組合數公式

根據上面這個組合的公式,我們可以使用階乘及相關計算,求出楊輝三角形的每個數,同時列印出來。

列印直角形式的楊輝三角形,即列印二維陣列時不加空格

**#include

#define line_maximum 10 //行數

int main()

; /* 填充二維陣列 */

for(i = 0; i < line_maximum; i++) //行數

}/* 列印楊輝三角(直角) */

for(i = 0; i < line_maximum; i++)

return 0;

}執行結果

列印等腰形式的楊輝三角形,需要在每行前面加若干空格,空格的寬度需要根據數字的寬度調整,使三角形對稱。

**#include

#define line_maximum 10 //行數

int main()

; int k = 0;

/* 填充二維陣列 */

for(i = 0; i < line_maximum; i++) //行數

}/* 列印楊輝三角(等腰) */

for(i = 0; i < line_maximum; i++)

return 0;

}執行結果

由於迴圈都是從 0 開始,所以核心函式的功能是獲取楊輝三角第 m + 1 行,第 n + 1 個數的值(行數最小為1),即求c(m,n)。另外,由於公式中存在除法,所以行數列數及結果不能使用整型,需要用浮點型。

**#include

#define line_maximum 10 //行數

/** * @brief 獲得階乘結果(遞迴實現www.cppcns.com)

* @param num 輸入的引數

* @return 返回num!(階乘)

*/float get_factorial(float num)

//獲取楊輝三角第 m + 1 行,第 n + 1 個數的值為 c(m,n)

float get_num(float m, float n)

int main()

return 0;

}執行結果

這份**看起來很簡潔,使用的是公式法。

#include

#include

int main()

getchar(); // 暫停等待

return 0;

}

HDOJ 列印楊輝三角 C語言實現

還記得中學時候學過的楊輝三角嗎?具體的定義這裡不再描述,你可以參考以下的圖形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 input 輸入資料報含多個測試例項,每個測試例項的輸入只包含乙個正整數n 1 n 30 表示將要輸出的楊輝三角的層數。output ...

楊輝三角的C語言實現

最基本演算法 非遞迴 include using namespace std void pascal int maxrow array 0 0 1 for int i 0 i maxrow i 計算除了三角形兩邊都為1的其他值 for int i 1 i maxrow i 輸出 for int i ...

C語言列印楊輝三角

在螢幕上列印楊輝三角 思想 楊輝三角的規律就是三角形的腰上的兩條邊的值都位1 從第三行開始除了外層是1的,當前位置的值等於上一行同列和上一行列減一的值的相加值,可以用二維陣列進行對楊輝三角的儲存,然後在螢幕上將二維陣列輸出即可。如下圖所示 define crt secure no warnings ...