持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情
🚩write in front🚩
🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 星级博主~掘金⇿InfoQ~51CTOP创作者~周榜102﹣总榜860⇿全网访问量35w+🏅
🆔本文由 謓泽 发布到掘金(JueJin) 如需转载还请通知⚠
📝个人主页-謓泽 的个人主页 - 文章 - 掘金 (juejin.cn)📃
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏-【C语言】Topic - 謓泽的专栏 - 掘金 (juejin.cn)🎓
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
✨第五十六题→杨辉三角✨
前言
又到了每天刷题的时候了,虽说这个系列很久没有更新但是博主依旧还是时不时的会刷下题目,那么现在我们正式开始解题吧。 解题思路如下所示↓
杨辉三角,本质上指的是上面两个数字加起来的和就是下面的数字,依次类推。// 1 // 1 1 // 1 2 1 // 1 3 3 1 // 1 4 6 4 1 // 1 5 10 10 5 1那么最上面第一个数字1是怎么来的?其实就是当你看不到的数字其实就是0,这个就是所谓的杨辉三角的基本情况。
不理解刚刚所说的你可以把它当成是这样,第一列是数字1,对角线上也是1。//1 //1 1 //1 2 1 //1 3 3 1 //1 4 6 4 1 //1 5 10 10 5 1上述思路当中:杨辉三角是可以二维数组的形式把它给打印出来,用二维数组存放打印出10行10列这样的杨辉三角,当我们要打印的时候,首先我们需要把杨辉三角的内容给存放进去,最开始的数组假设全部给上0。接下来你把第一列给上0,对角线给成0,那么里面的内容就可以算出来了。所以我们就可以去遍历这个二维数组创建两个变量用for循环。第二层for循环遍历的时候判断条件可以j<=i。这样等于i的时候就是对角线的1。这样就可以遍历数组。
#include<stdio.h>
#define row 10
#define col 10
int main(void)
{
int arr[row][col] = { 0 };//创建二维数组
int i, j = 0;//创建两个变量
//遍历二维数组用for循环
for (i = 0; i < row; i++)
{
for (j = 0; j <= i; j++)
{
//第一列给上1,注意:数组下标从0开始
if (j == 0)
{
arr[i][j] = 1;
}
//对角线给1(判断表达式进行判断)
if (i == j)
{
arr[i][j] = 1;
}
//当行大于等于2,并且列大于等于1的时候就可以开始计算
if (i >= 2 && j >= 1)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
//用for循环遍历打印二维数组当中的杨辉三角
for (i = 0; i < row; i++)
{
for (j = 0; j <= i; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
运行结果🖊
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 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1