杨辉直角(等腰)三角
目录
一、杨辉直角三角
思路
按部就班
代码实现
二、杨辉等腰三角
注:由于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日
杨辉直角(等腰)三角相关推荐
- 杨辉三角(下三角或者等腰三角)
//杨辉三角(下三角或者等腰三角) #include <stdio.h> int fun(int i,int j) { if(i==j||1==j) return 1; else retu ...
- 【C语言】杨辉三角(等腰三角)
前言: 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是 ...
- 等腰杨辉三角C语言实现
等腰杨辉三角C语言实现 #include<stdio.h> int main() {int num[10][10];int i,j;for(i=0;i<10;i++){num[i][ ...
- c语言|直角杨辉三角
/*直角形状的杨辉三角*/ #include<stdio.h> int main(){int n;printf("请输入需要打印的行数:");scanf("% ...
- 循环打印直角、杨辉三角图形
循环打印星星.数字.字母问题 根本准则: 外层循环控制行数 内层循环控制列数,找到与行的关系 (当有空白列拼接在前时,写两个并列的内层for,第一个for控制空白列的数量) 内层循环的循环体控制行内元 ...
- 杨辉三角(直角形状)
这是一个能自己定义需要行数的杨辉三角代码:
- C语言每日一练——第72天:打印杨辉三角(使用两种方法)
C语言每日一练 2022年1月5日 文章目录 题目描述 问题分析 1. 使用数组法(打印直角三角) 2. 使用数组法(打印等腰三角) 3. 使用公式法(打印等腰三角) 网上参考 题目描述 打印杨辉三角 ...
- 打印杨辉三角--for循环
要求打印7行直角杨辉三角 杨辉三角特点: 第1行和第2行数字都为1: 从第三行开始,除去开头和结尾数字为1,中间数字为上一行斜对角两个数字的和. 如下图: 打印结果: 代码如下: package 杨辉 ...
- Java小结(三)——打印完美杨辉三角
打印了一个10层的等腰杨辉三角 //打印杨辉三角public static void printTrigon(){int[][] a = new int[10][10];//定义一个二维数组,用来打印 ...
最新文章
- 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp
- 计算机网络知识点补充
- 戴尔服务器t110做系统,戴尔服务器T110
- mybatis中使用使用模块化sql
- 博客园里写blog可以添加自己的js文件
- 拓端tecdat|Python风险价值计算投资组合VaR(Value at Risk )、期望损失ES(Expected Shortfall)
- 面试题之Error和Exception总结
- element表格动态合并多列
- Hacking EV3系列之七:iPhone 手势无线控制LEGO EV3 Gyro Boy 机器人
- WallPaperAbyss爬虫
- 点线面的特点_设计三神器!点线面的基本特点与表现
- python如何取消换行_python怎么取消换行
- 计算广告发展历程——从CPC到oCPX
- 店铺logo设计免费在线生成
- win策略计算机配置,BGinfo配置策略(Server2012R2-Win10)
- File类详解(获取文件名称、大小、路径、创建等)
- 「Arm Arch」 ISA 概述
- Jmeter接口测试参数化详解
- 关于.net介绍 /第一行C#代码 /什么是面向对象
- ESD静电二极管选型需要关注的要点在哪里?
热门文章
- html与网页设计 实践课,HTML5网页设计课程混合式教学设计与实践
- PULUODY LIMS系统实操
- 最近发现一个很好的开源电商项目给大家推荐一哈,值得学习!!!
- spring mvc中实现csrf安全防御简记
- Linux文件与目录的默认权限与隐藏权限(chattr,lsattr)
- 最新小旋风蜘蛛池X6.21解密版+绕过授权带教程
- 特斯拉Model Y被评为2022年最佳电动汽车;亚洲第50家希尔顿花园酒店于锦州开业 | 美通社头条...
- Axure如何画出页面的线框图
- MySQL Order by 和 max哪个性能更高更好?
- (六)Linux内存管理 - zoned page frame allocator - 1