C语言每日一练——第105天:杨辉三角形

本文详细介绍了杨辉三角的数学背景及C语言实现过程,包括初始化二维数组、动态规划求解和居中打印。通过逐步讲解和代码展示,阐述了杨辉三角的构造规律,并探讨了其在数学和计算机科学中的应用,如隐藏数列、斐波那契数列等。

🌟 前言

Wassup guys,我是Edison😎

今天是C语言每日一练,第105天!

Let’s get it!

在这里插入图片描述



1. 题目描述

杨辉三角形

解题之前,我们先来了解一下杨辉三角形到底是什么?

杨辉三角形,又称帕斯卡三角形、贾宪三角形、海亚姆三角形,它的排列形如三角形。
 
因为首现于南宋杨辉的《详解九章算法》得名,而书中杨辉说明是引自贾宪的《释锁算书》,故又名贾宪三角形。
 
古代波斯数学家欧玛尔·海亚姆也描述过这个三角形。在欧洲,因为法国数学家布莱兹‧帕斯卡在1653年的《论算术三角》中首次完整论述了这个三角形,故也被称作帕斯卡三角(Pascal’s triangle)。
 
杨辉三角的前10行写出来如下👇
在这里插入图片描述

2. 解题思路

其实规律很简单,我们来看一看

在最上面一行的中央写下数字 1;
 
第二行,写下两个1,和上一行形成三角形;
 
随后的每一行,开头和最后的数字都是1,其他的每个数都是它左上方和右上方的数之和,就是说除每行最左侧与最右侧的数字以外,每个数字等于它的左上方与右上方两个数字之和。
在这里插入图片描述

3. 动图演示

在这里插入图片描述

4. 代码实现

我们通过动图可以得出以下结论👇

1、两边都是数字1;
 
2、从第三行开始,除了两边的数字1之外的数字都是由 “肩膀上” 的数字相加得到的。
 
对于算法不太熟悉的朋友,如果直接去打印,可能就比较困难,所以我们不妨拆开几步来做。

🍑 Step1

1、定义一个9行9列的二维整型数组;
 
2、数组所有元素都赋值为1;
 
3、输出数组所有元素

#include <stdio.h>

int main()
{
   
   
    //定义一个9行9列的二维整型数组
    int data[9][9];

    int i = 0;
    int j = 0;

    for (i = 0; i < 9; i++)
    {
   
   
        for (j = 0; j < 9; j++)
        {
   
   
            //数组所有元素都赋值为1
            data[i][j] = 1;
        }
    }

    //输出数组所有元素
    for (i = 0; i < 9; i++)
    {
   
   
         for (j = 0; j < 9; j++)
         {
   
   
             printf("%6d", data[i][j]);
         }
         printf("\n");
    }
    return 0;
}

我们输出看一下👇

评论 122
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Albert Edison

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值