目录

一、杨辉直角三角

思路

按部就班

代码实现

二、杨辉等腰三角


注:由于VS不支持变长数组,这里我就用n=4来写

一、题目名称

题目内容:
输入一个数n,在屏幕上打印n行n列的杨辉三角。例如:输入:4输出:
1
1 1
1 2 1
1 3 3 1

二、思路

以4行4列的杨辉三角为例

首先,可以把数据存在一个i行j列的二维数组里

其次,通过规律可以发现,最左边的一列为1、斜对角线也为1

然后,如下图,中间部分都是上一行的两个相邻的数相加得到的

最后,打印出来就行了

详细的细节都在【按部就班】

三、按部就班

首先,创建一个4行4列的二维数组,并分别用i、j遍历行和列

#include <stdio.h>
int main()
{int arr[4][4] = { 0 };//创建二维数组并初始化for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++){}}return 0;
}

其次,通过规律可以发现,最左边的一列为1、斜对角线也为1,所以只要将j==0或者i==j上的二维数组赋值为1即可

#include <stdio.h>
int main()
{int arr[4][4] = { 0 };//创建二维数组并初始化for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++){//将斜对角线和左列赋值为1if (i == j || j == 0){arr[i][j] = 1;}}}return 0;
}

然后,中间部分都是上一行的两个相邻的数相加得到的

如上图,当i >= 2 并且 j >= 1时,中间部分通过上一行的两个相邻的数相加

#include <stdio.h>
int main()
{int arr[4][4] = { 0 };//创建二维数组并初始化for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++){//将斜对角线和左列赋值为1if (i == j || j == 0){arr[i][j] = 1;}//中间部分if (i >= 2 && j >= 1){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}return 0;
}

最后,打印出来就行了

如上图,打印只要打印出斜对角线以下(包括斜对角线)的元素,也就是i >= j即可,别忘了打印完一行需要换行

【代码实现】

#include <stdio.h>
int main()
{int arr[4][4] = { 0 };//创建二维数组并初始化for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++){//将斜对角线和左列赋值为1if (i == j || j == 0){arr[i][j] = 1;}//中间部分if (i >= 2 && j >= 1){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}//打印for (int i = 0; i < 4; i++){for (int j = 0; j < 4; j++){if (i >= j){printf("%d ", arr[i][j]);}}printf("\n");}return 0;
}

程序运行结果:

四、杨辉直角三角

这个和打印菱形差不多,大家可以去参考 ---->  打印菱形(我还在评论区给出一个打印圣诞树的OJ链接,也和这个很像)

这里我就直接给出代码了

#include <stdio.h>int main()
{int arr[4][4] = { 0 };//创建二维数组并初始化for (int i = 0; i < 4; i++){for (int j = 0; j < 4; j++){//将斜对角线和左列赋值为1if (i == j || j == 0){arr[i][j] = 1;}//中间部分if (i >= 2 && j >= 1){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}//和打印菱形差不多for (int i = 0; i < 4; i++){//先打印空格for (int j = 0; j < 4 - 1 - i; j++){printf(" ");}//打印数字for (int j = 0; j <= i; j++){printf("%d ",arr[i][j]);}printf("\n");}return 0;
}

程序效果:

因为vs不支持变长数组,若要打印n行n列,就把4换掉就行

比如打印9行9列

2023年1月18日

杨辉直角(等腰)三角相关推荐

  1. 杨辉三角(下三角或者等腰三角)

    //杨辉三角(下三角或者等腰三角) #include <stdio.h> int fun(int i,int j) { if(i==j||1==j) return 1; else retu ...

  2. 【C语言】杨辉三角(等腰三角)

    前言: 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是 ...

  3. 等腰杨辉三角C语言实现

    等腰杨辉三角C语言实现 #include<stdio.h> int main() {int num[10][10];int i,j;for(i=0;i<10;i++){num[i][ ...

  4. c语言|直角杨辉三角

    /*直角形状的杨辉三角*/ #include<stdio.h> int main(){int n;printf("请输入需要打印的行数:");scanf("% ...

  5. 循环打印直角、杨辉三角图形

    循环打印星星.数字.字母问题 根本准则: 外层循环控制行数 内层循环控制列数,找到与行的关系 (当有空白列拼接在前时,写两个并列的内层for,第一个for控制空白列的数量) 内层循环的循环体控制行内元 ...

  6. 杨辉三角(直角形状)

    这是一个能自己定义需要行数的杨辉三角代码:

  7. C语言每日一练——第72天:打印杨辉三角(使用两种方法)

    C语言每日一练 2022年1月5日 文章目录 题目描述 问题分析 1. 使用数组法(打印直角三角) 2. 使用数组法(打印等腰三角) 3. 使用公式法(打印等腰三角) 网上参考 题目描述 打印杨辉三角 ...

  8. 打印杨辉三角--for循环

    要求打印7行直角杨辉三角 杨辉三角特点: 第1行和第2行数字都为1: 从第三行开始,除去开头和结尾数字为1,中间数字为上一行斜对角两个数字的和. 如下图: 打印结果: 代码如下: package 杨辉 ...

  9. Java小结(三)——打印完美杨辉三角

    打印了一个10层的等腰杨辉三角 //打印杨辉三角public static void printTrigon(){int[][] a = new int[10][10];//定义一个二维数组,用来打印 ...

最新文章

  1. 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp
  2. 计算机网络知识点补充
  3. 戴尔服务器t110做系统,戴尔服务器T110
  4. mybatis中使用使用模块化sql
  5. 博客园里写blog可以添加自己的js文件
  6. 拓端tecdat|Python风险价值计算投资组合VaR(Value at Risk )、期望损失ES(Expected Shortfall)
  7. 面试题之Error和Exception总结
  8. element表格动态合并多列
  9. Hacking EV3系列之七:iPhone 手势无线控制LEGO EV3 Gyro Boy 机器人
  10. WallPaperAbyss爬虫
  11. 点线面的特点_设计三神器!点线面的基本特点与表现
  12. python如何取消换行_python怎么取消换行
  13. 计算广告发展历程——从CPC到oCPX
  14. 店铺logo设计免费在线生成
  15. win策略计算机配置,BGinfo配置策略(Server2012R2-Win10)
  16. File类详解(获取文件名称、大小、路径、创建等)
  17. 「Arm Arch」 ISA 概述
  18. Jmeter接口测试参数化详解
  19. 关于.net介绍 /第一行C#代码 /什么是面向对象
  20. ESD静电二极管选型需要关注的要点在哪里?

热门文章

  1. html与网页设计 实践课,HTML5网页设计课程混合式教学设计与实践
  2. PULUODY LIMS系统实操
  3. 最近发现一个很好的开源电商项目给大家推荐一哈,值得学习!!!
  4. spring mvc中实现csrf安全防御简记
  5. Linux文件与目录的默认权限与隐藏权限(chattr,lsattr)
  6. 最新小旋风蜘蛛池X6.21解密版+绕过授权带教程
  7. 特斯拉Model Y被评为2022年最佳电动汽车;亚洲第50家希尔顿花园酒店于锦州开业 | 美通社头条...
  8. Axure如何画出页面的线框图
  9. MySQL Order by 和 max哪个性能更高更好?
  10. (六)Linux内存管理 - zoned page frame allocator - 1