C语言之杨辉三角
大家好呀!👋這個是付青云同學的博客,是一名大一在校生哦!😁😁
目前一直在學習C語言。🐸
寫博客是為了來記錄我的學習過程,同時也希望通過博客能夠幫助到需要幫助的人。
如果我的博客可以幫助到你,不妨給我一個關注哦😁
文章目錄
- 楊輝三角
- 規則
- 代碼實現1
- 運行結果
- 代碼實現2
- 運行結果
楊輝三角
規則
如圖:
- 每個數等于它上方兩數之和。
- 每行數字左右對稱,由1開始逐漸變大。
- 第n行的數字有n項。
- 前n行共[(1+n)n]/2 個數。
- …
代碼實現1
#define _CRT_SECURE_NO_WARNINGS#define ROW 10 #define COL 10 #include <stdio.h>int main() {//楊輝三角int arr[ROW][COL] = { 0 };int i = 0;int j = 0;arr[0][0] = 1;for (i = 0; i < ROW; i++){for (j = 0; j <=i; j++){if (j == i || j == 0)//打印兩邊{arr[i][j] = arr[0][0];printf("%d ", arr[i][j]);}else//打印中間{arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];printf("%d ", arr[i][j]);}}printf("\n");}return 0; }運行結果
在這里我們發現這個運行結果跟上面的圖片好像不一樣,是個樓梯形的,那可不可以寫個代碼將輸出結果變成三角形的呢?
代碼如下:
代碼實現2
#define _CRT_SECURE_NO_WARNINGS#define ROW 8 #define COL 8 #include <stdio.h>void YH_sanjiao(int arr[ROW][COL], int row, int col) {//定義楊輝三角int i = 0;int j = 0;arr[0][0] = 1;for (i = 0; i < ROW; i++){for (j = 0; j <= i; j++){if (j == i || j == 0){arr[i][j] = arr[0][0];}else{arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}} }void lingxin(int arr[ROW][COL], int row, int col)//打印楊輝三角的函數 {int i = 0;int j = 0;for (i = 0; i < row; i++)//打印一行{ for (j = 0; j < col - i - 1; j++)//打印空格{printf(" ");}for (j = 0; j < i; j++){printf("%d ", arr[i][j]);//打印數字}printf("\n");} }int main() {int arr[ROW][COL] = { 0 };YH_sanjiao(arr, ROW, COL);lingxin(arr, ROW, COL);return 0; }運行結果
總結
- 上一篇: ggplot2: post-hoc +
- 下一篇: KITTI数据集GPS数据格式dataf