概念:

杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。

分析:

我们把上图三角形左边的空格去掉后进行分析:

观察上图可以发现:

1、上图三角形的第一列的每个元素都是1;

2、三角形的斜边每个元素都是1;

3、从第三行,第二列开始,三角形中间的每个元素的值都等于它上面两个元素的和。

思路:

我们可以把这个杨辉三角看成一个二维数组,而我们只需要打印这个数组的左下方部分 :

1、我们首先创建一个二维数组:

#define ROW 10
#define COL 10
int main()
{int arr[ROW][COL] = { 0 };return 0;
}

2、这个二维数组的第一列的元素都为1,即当COL==0时,arr[ROW][COL] = 1;

3、这个二维数组的对角线的元素都为1,即当ROW == COL时,arr[ROW][COL] = 1;

4、从第三行,第二列开始,数组中间的每个元素的值都等于它上面两个元素的和:

当(ROW>=2 && COL >=1)时,arr[ROW][COL] = arr[ROW - 1][COL - 1] + arr[ROW - 1][COL];

以上内容转换为代码:

#define ROW 10
#define COL 10
int main()
{int arr[ROW][COL] = { 0 };int i = 0;int j = 0;//第一列和对角线都为1for (i = 0;i < ROW;i++){for (j = 0;j <= i;j++){if (j == 0)//第一列为1{arr[i][j] = 1;}if (i == j)//对角线为1{arr[i][j] = 1;}//从第三行,第一列的元素开始,中间的每个元素都等于它上面的两个元素之和if (i >= 2 && j >= 1){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}return 0;
}

打印:

打印时,只需要再遍历一次数组左下方的元素即可:

 for (i = 0;i < ROW;i++){for (j = 0;j <= i;j++){printf("%-3d ", arr[i][j]);}printf("\n");//打印完一行后换行}

效果如下:

如果想打印出刚开始的等腰三角形那种情况,只需要再控制一下每一行前面的空格数量,我们再次观察一下第一个图中杨辉三角的前三行:

当行号为3时,第一行有2个空格(ROW-1),第二行有1个空格(ROW-2),第三行有0个空格(ROW-3)

转换为代码:

for (i = 0;i < ROW;i++){for (j = 0;j < (ROW - 1) - i;j++)//控制空格数量{printf("  ");}for (j = 0;j <= i;j++){printf("%-3d ", arr[i][j]);}printf("\n");//打印完一行后换行}

因为 i 的初始值为0,所以循环条件中需要先给ROW - 1,然后再减 i 。

效果如下:

所有代码:

最后是整个程序的所有代码:

#include <stdio.h>
#define ROW 10
#define COL 10
int main()
{int arr[ROW][COL] = { 0 };int i = 0;int j = 0;//第一列和对角线都为1for (i = 0;i < ROW;i++){for (j = 0;j <= i;j++){if (j == 0)//第一列为1{arr[i][j] = 1;}if (i == j)//对角线为1{arr[i][j] = 1;}//从第三行,第一列的元素开始,中间的每个元素都等于它上面的两个元素之和if (i >= 2 && j >= 1){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}for (i = 0;i < ROW;i++){for (j = 0;j < (ROW - 1) - i;j++)//控制空格数量{printf("  ");}for (j = 0;j <= i;j++){printf("%-3d ", arr[i][j]);}printf("\n");//打印完一行后换行}return 0;
}

C语言编程题——杨辉三角相关推荐

  1. C语言编程题——杨辉三角(两种方法实现)

    杨辉三角--C语言实现 杨辉三角: 在屏幕上打印杨辉三角. 1 1 1 1 2 1 1 3 3 1 -- 根据上述例子可知: 1.每一行的第一个和第二个数为1: 2.其余的数为正上方和左边数字之和. ...

  2. 杨辉三角c语言编程视频,杨辉三角C语言编程

    1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 杨辉三角在程序练习当中是比较常见的,根据上面的给出的数列可以看出一些规律来,每行的两边都是1,从第2列开始,每个数是上一行相邻的数之和,根据 ...

  3. 某校2020专硕编程题-杨辉三角

    题目 输入正整数n,输出n行杨辉三角 如:n=4 1 1 1 1 2 1 1 3 3 1 Java实现 public static void test05(){Scanner sc = new Sca ...

  4. 嵌入式 Linux 开发工具篇问题整理//C语言测试(杨辉三角、递归调用实现阶乘、计算器、统计字符串出现次数)//2018.07.12.//

    嵌入式 Linux 开发工具篇问题整理 1. 嵌入式开发与传统开发的区别?(同类问题:单片机开发与嵌入式开发的区别)             是否有无操作系统:     2. 移植操作系统的好处有哪些 ...

  5. 杨辉三角c语言程序for循环,如何用C语言循环输出杨辉三角?

    #include #define N 14 void main() { int i, j, k, n=0, a[N][N];  /*定义二维数组a[14][14]*/ while(n<=0||n ...

  6. 【已解决】蓝桥杯 2017年C组第五题 杨辉三角(分析与总结)

    励志用少的代码做高效表达 题目描述: 杨辉三角也叫帕斯卡三角,在很多数量关系中可以看到,十分重要. 第0行: 1 第1行: 1 1 第2行: 1 2 1 第3行: 1 3 3 1 第4行: 1 4 6 ...

  7. 【C语言练习——打印杨辉三角及其变形】

    CSDN话题挑战赛第1期 活动详情地址:活动地址 参赛话题:大学学习月/季度总结 话题描述:对自己大学的月/季度学习的复盘及展望 杨辉三角及其变形 前言 1.杨辉三角之左对齐 1.1 写法1 1.2 ...

  8. 关于蓝桥杯第十二届H题杨辉三角(满分结果)

    一.题目描述 二.题目初步分析 杨辉三角大家都会,这题多了一个进行判断,相等就输出位置,难点在于:n可以为10亿,运行次数过多会超内存,超时 三.寻找规律 按照这类题,想出正确结果,只有寻找规律 第一 ...

  9. 每日程序C语言33-打印杨辉三角

    题目: 打印出杨辉三角的前十行 程序分析 杨辉三角的前十行: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 3 ...

  10. LeetCode 第119题 杨辉三角II

    给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 通项公式 : n = n * (rowIndex - i) / (i + 1); ...

最新文章

  1. JDBC进行简单的增删改查
  2. Windows 10 周年更新正式版下载 + win10 快捷键
  3. 解除Ubuntu系统的root登录图形界面限制
  4. 一个自定义类型的运算符重载的例子
  5. 网络编程释疑之:TCP的TIME_WAIT状态在服务器开发中的影响?
  6. Cntlm安装和配置心得
  7. oracle数据库查看归档路径,centos7下查oracle归档及物理文件路径
  8. 使用计算机教学的意义,信息技术对教学的意义
  9. Spring Boot Java应用代码混淆介绍
  10. Adaboost新理解
  11. 我为什么鼓励大家运营个人公众号
  12. scapy:收发数据包
  13. java怎么分组查询_JAVA8 分组统计
  14. 软件技术毕业论文编程方向
  15. 数据目录是什么?为何需要它?
  16. unity tags的坑
  17. Win 10 关闭系统自动更新(解决svchost.exe 占用网络问题,解决svchost.exe不断消耗流量问题)
  18. 关于社区团购和菜场买菜的一点感想
  19. 【JavaScript】this指向经典面试题(超详细)
  20. java接口和抽象类的区别(经典面试题)

热门文章

  1. 原生开发什么意思_原生开发才是王道
  2. VScode+Latex:代码和pdf互相跳转
  3. 【题目记录】——2021 年百度之星·程序设计大赛 - 初赛二
  4. 【数据库考试】数据库期末考试试题及答案
  5. Foobar2000之处理无损音乐格式
  6. HEX BIN文件 分析介绍
  7. 基于Socket网络编程基本步骤
  8. windows中的ntsd工具使用
  9. mov和mp4格式哪个好_录音软件哪个好用?8款好用的录音软件
  10. Android设备运用Clockworkmod Recovery恢复模式安装定制的Rom