杨辉三角(代码直接呈现,便于理解)

简介: 杨辉三角(代码直接呈现,便于理解)

摘要:杨辉三角是一个由数字构成的三角形,其特点是每一行的每个数字都是上一行相邻两个数字之和。本文将介绍杨辉三角的原理,以及如何在C语言中实现杨辉三角的生成。


一、杨辉三角的原理

杨辉三角,又称为帕斯卡三角,是一个在数学史上具有重要意义的三角形。它的每一行都是由上一行的相邻两个数字之和构成的。从第一行开始,每一行的第一列和最后一列都是1。接下来,每一行的数字都是通过上一行的相邻两个数字之和得到的。例如,第二行的数字为1,1,第三行的数字为1,2,1(1+1=2),第四行的数字为1,3,3,1(1+2=3,2+1=3)。


二、杨辉三角的C语言代码实现


下面给出一个简单的C语言代码,用于生成行数为十的杨辉三角:

int main()
{
    int arr[10][10] = { 0 };
    int a = 1;
    int b = 1;
 
    for (a = 0; a < 10; a++)
    {
        b = 10 - a;
        while (b--)
        {
            printf("  ");
        }
 
        arr[a][0] = 1;//注意访问数组是从0开始(数组的最低下标是0)
 
        for (b = 0; b <= a; b++)
        {
            if (a == b)
                arr[a][b] = 1;
            if (a > 1 && b >= 1)
                arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];//上一行前一列和本列数之和
            printf("%4d ", arr[a][b]);//赋值完一行后直接打印得到的整体打印效果就是直接
        }
        printf("\n");
    }
    return 0;
}


代码解析:

1. 提示用户输入要生成的行数。(根据需要判断是否要这一步)

2. 使用嵌套的for循环来遍历每一行和每一列。

3. 在每一行开始时,使用内部for循环打印一些空格,以便使得三角形居中。

4. 在每一行内部的第二个for循环中,计算并打印每个数字。对于每一行的第一个数字或者是每一行的第一个和最后一个数字,设定为1。对于其他数字,通过将其设置为上一行相邻两个数字的和来计算。使用一个变量coef来保存每个数字的值。

5. 在每一行结束后,通过使用printf("\n")来打印一个换行符,将光标移动到下一行的开头。

6. 循环直到所有行都打印完毕。


运行该代码,就可以输出一个行数为十的杨辉三角



通过本文,你了解了杨辉三角的原理以及如何在C语言中实现杨辉三角的生成。在实际应用中,杨辉三角可以用于快速计算阶乘、斐波那契数列等。希望这篇博客对你有所帮助!

相关文章
|
7月前
|
Java 程序员
【Java编程实现 9 * 9 乘法表格打印四种形态,七种打法】
【Java编程实现 9 * 9 乘法表格打印四种形态,七种打法】
68 0
|
2月前
画图,综合例子
画图,综合例子。
61 17
|
6月前
|
C++
【洛谷 P2241】统计方形(数据加强版)题解(循环枚举)
该题目是1997年普及组的一道编程题,要求计算$n\times m$棋盘中的正方形和长方形数量(不计正方形)。输入包含两正整数$n,m\leq 5000$。输出为一行,两个正整数分别表示正方形和长方形数量。示例输入`2 3`,输出`8 10`。解题思路是将矩形数拆分为正方形数和长方形数,然后通过双重循环计算。AC代码使用C++编写,通过累加方法得出结果。
58 0
|
7月前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(一)
本文介绍了编程中的一种思想,通过菱形打印问题来阐述如何理解和使用循环嵌套。文章提到,初学者在面对循环结构时,可以通过先识别代码块的结束括号来理解整体结构,提高阅读效率。作者提出了“在盒子里过家家”的理解思路,将外层循环看作一个个盒子,内层循环视为盒子里的操作,弱化循环嵌套的概念,强调以盒子为单位思考问题。此外,文章还通过示例解释了内外循环的关系,帮助读者更好地理解循环控制和执行过程。
108 3
|
7月前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(二)
本文介绍了如何运用特定思路解析和解决编程问题,特别是涉及双层循环的情况。首先,通过一个打印特定图案的例子,解释了将“盒子”作为思考单位的概念,即分析问题中每个循环的作用和内容。接着,以冒泡排序为例,展示了如何将问题分解为外层循环(趟数)和内层循环(每趟的比较与交换),并通过盒子思路简化理解和实现代码。最后,提到了菱形打印的代码优化,鼓励读者思考并应用这种思维方式。总的来说,文章强调了自然地理解和运用循环结构,而不是机械地记忆。
73 2
|
7月前
|
算法 Java 定位技术
嵌套for循环的基础直角三角形——四个方向打印
嵌套for循环的基础直角三角形——四个方向打印
133 0
学C的第十三天【应用多文件的形式实现 三子棋 程序(重点);练习:1. 打印9*9乘法口诀表、2. 求10个整数中的最大值、3. 分数加减交叉计算、4. 数一下 1到 100 的整数中出现了多少个9】
9.数组的应用实例1:三子棋(综合以前学习的知识) 三子棋的实现:(重点都在注释中) 1. 游戏不退出,继续玩下一把(循环) 2. 应用多文件的形式写代码