[C语言][典例详解]打印杨辉三角(找规律简单实现)

news2024/10/3 6:34:07

目录

杨辉三角的相关知识

杨辉三角图:

 

杨辉三角的规律

在编程中实现

第一步 :我们先实现数字的打印,后面再加上空格构成三角形形状;

​编辑

1.首先我们可以直观的看出三角形的两个斜边都是1;所以我们先打印斜边的1(代码实现+分析+运行效果:)

2.打印中间的数据(代码实现+分析+运行效果)

 第二步:加上空格构成三角形(代码实现+分析+运行效果)

 总代码:


杨辉三角的相关知识

杨辉三角图:

 

 


杨辉三角的规律

1.每个数等于它上方两数之和。(如下图1)

 2.每行数字左右对称,由1开始逐渐变大。(如图)

 3.第n行的数字有n项。(由上图容易看出)

4.(a+b)^n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。(如图)

 

 所以我们也可以用二项式来写出,但下面所讲的是用上面行的数字加来得下面所要的数字


在编程中实现

杨辉三角在编程实现中较为容易。最常见的算法便是用上一行递推计算;也有运用和组合的对应关系而使用阶乘计算的,然而后者速度较慢且阶乘容易溢出

第一步 :我们先实现数字的打印,后面再加上空格构成三角形形状;

如:

1.首先我们可以直观的看出三角形的两个斜边都是1;所以我们先打印斜边的1(代码实现+分析+运行效果:

代码实现:

int main()
{
	int arr[10][10] = { 0 };
	int i = 0;
	for (i=0;i<10;i++)
	{
		arr[i][0] = 1;
		int j = 0;
		for (j = 0; j < i + 1; j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
		}
	}

	//打印看看效果
	for (i = 0; i < 10; i++)
	{
		int j = 0;
		for (j = 0; j < i + 1; j++)
		{
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

分析:

 

运行效果:

 


2.打印中间的数据(代码实现+分析+运行效果

利用上一行的前面一列的数加上一行本列数得到这个数

如:我们要得到第三行的第二个数2   即arr[3][1];即arr[3-1][1-1]+arr[3-1][1]=arr[3][1]=2

 代码实现:

int main()
{
	int arr[10][10] = { 0 };
	int i = 0;
	for (i=0;i<10;i++)
	{
		arr[i][0] = 1;
		int j = 0;
		for (j = 0; j < i + 1; j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
			if (i > 1 && j > 0)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

代码分析:

 运行结果:

 第二步:加上空格构成三角形(代码实现+分析+运行效果

代码实现:

int main()
{
	int arr[10][10] = { 0 };
	int i = 0;
	for (i=0;i<10;i++)
	{
		int n = i;
		arr[i][0] = 1;
		int j = 0;
		for (j = 0; j < i + 1; j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
			if (i > 1 && j > 0)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
			while (10 - (n + 1))
			{
				printf(" ");
				n++;
			}
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}
    return 0;
}

代码分析:

运行结果:


 总代码:

int main()
{
	int arr[10][10] = { 0 };
	int i = 0;
	for (i=0;i<10;i++)
	{
		int n = i;
		arr[i][0] = 1;
		int j = 0;
		for (j = 0; j < i + 1; j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
			if (i > 1 && j > 0)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
			while (10 - (n + 1))
			{
				printf(" ");
				n++;
			}
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}

	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584541.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

S型平滑函数功能块(SCL+梯形图)

S型平滑和斜坡平滑函数从字面理解也知道大概用处了,这里就不再具体阐述。S型曲线在温控上面的应用请参看系列专栏,链接如下: 带平滑功能的斜坡函数(多段曲线控温纯S型曲线SCL源代码+完整算法分析)_s斜坡函数_RXXW_Dor的博客-CSDN博客PLC运动控制基础系列之梯形速度曲线,…

Java 集合和数组,集合和字符串,数组和字符串的相互转换

在 Java 中&#xff0c;可以通过以下方式实现集合、数组和字符串之间的相互转换。 一、集合和数组的相互转化 ①、将集合转为数组&#xff1a;&#xff08;toArray 方法&#xff09; List<String> list new ArrayList<>(); list.add("apple"); lis…

手写服务限流6种实现方式

服务限流&#xff0c;我有 6 种实现方式 ImportNew 2023-05-29 11:31 发表于上海 以下文章来源于码农参上 &#xff0c;作者Dr Hydra 码农参上. 专注后端技术分享&#xff0c;有趣、深入、直接&#xff0c;与你聊聊技术。 今天来和大家聊聊服务的限流。 服务限流&#xff0…

2023 年 14 个最佳隐私和安全 Linux 发行版

随着数字时代的到来&#xff0c;隐私和安全成为了越来越重要的议题。对于那些关注隐私和安全的用户来说&#xff0c;选择一款专注于保护用户数据和系统安全的Linux发行版是至关重要的。在本文中&#xff0c;我们将介绍2023年14个最佳的隐私和安全Linux发行版&#xff0c;这些发…

stm32学习笔记-11 SPI通信

11 SPI通信 文章目录 11 SPI通信11.1 SPI通信协议11.2 W25Q64简介11.3 实验&#xff1a;软件SPI读写W25Q6411.4 SPI通信外设11.5 实验&#xff1a;硬件SPI读写W25Q64 注&#xff1a;笔记主要参考B站 江科大自化协 教学视频“ STM32入门教程-2023持续更新中”。 注&#xff1a…

Acrel-2000系列监控系统在亚运手球比赛馆建设

10kV供配电工程中的应用 摘要:智能化配电监控系统是数字化和信息化时代应运而生的产物&#xff0c;已经被广泛应用于电网用户侧楼宇、体育场馆、科研设施、机场、交通、医院、电力和石化行业等诸多领域的高/低压变配电系统中。安科瑞自研的Acrel-2000系列监控系统可监控高压开…

【自动化测试】自动化测试框架那些事儿!

无论是在自动化测试实践&#xff0c;还是日常交流中&#xff0c;经常听到一个词&#xff1a;框架。在教学的过程中&#xff0c;同学们一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料&#xff0c;加上一些实践&#xff0c;算是对“框架”有了一些理解…

OceanMind海睿思入选《2023中国企业数智化转型全景图中国数据智能产业图谱》

近日&#xff0c;国内知名大数据产业创新服务媒体数据猿携手上海大数据联盟发布了《2023中国企业数智化转型升级服务全景图/产业图谱》和《2023中国数据智能产业图谱》。 两份图谱系统梳理了中国数智化转型升级及数据智能行业发展现状和脉络&#xff0c;评选出极具商业合作价值…

​​​​Linux Shell 实现一键部署Oracle21 zip包方式

oracle前言 Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财富排行榜上的前1000家公司所采用&#xff0c;许多大型网站也选用了Oracle系统&#xff0c;是世界最好的数据库产品。此外&#xff0c;Oracle公司还开发其他应用程序和软件。同时&#…

ABeam News|ABeam荣获「SAP BTP 卓越业务分析奖」

近日&#xff0c;「云铸数卯&#xff0c;榫合万象」SAP BTP 客户与生态峰会在桂林圆满落幕。此次年度峰会以全面的视角展现 RISE with SAPSAP BTP如何构建“新型中国企业”数字底座。 ABeam Consulting作为SAP金牌合作伙伴受邀出席&#xff0c;大中华区董事长兼总经理中野洋辅…

Ubuntu Go语言环境配置【GPT-4版】

目录 go语言的培训网课安装goGPT-4给出的过程在VSCode里怎样正确配置好Go的调试相关设置&#xff1f;如果我在Visual Studio Code中安装Go语言的相关工具总是失败怎么办&#xff1f;我已重启Visual Studio Code&#xff0c;接下来应该怎样检查日志&#xff1f;如果我还是不能成…

Vue2中给对象添加新属性界面不刷新

Vue2中给对象添加新属性界面不刷新? Vue2.x的响应式 实现原理 对象类型&#xff1a;通过Object.defineProperty()对属性的读取、修改进行拦截&#xff08;数据劫持&#xff09;。数组类型&#xff1a;通过重写更新数组的一系列方法来实现拦截。&#xff08;对数组的变更方法…

敏捷世界还需要有QA吗?

敏捷开发模型现在已经被越来越多的公司熟知并使用&#xff0c;很多公司会选择敏捷开发模式的转型&#xff0c;其主要目的就是为了不断适应变化以及客户快速交付的诉求。为什么敏捷开发能够被诸多大众接受&#xff1f;可以从两个维度来看&#xff1a; 首先&#xff0c;从开发人员…

条码系统(PC/PDA)对接NC接口功能

条码系统功能清单功能模块功能菜单明细菜单支持终端功能描述业务流程框架pc端框架搭建 PC端整体框架工具搭建,提供字典配置,PDA端的参数配置,NC数据源,NC接口调用工具等 PDA端框架搭建 PDA端安卓端框架基础功能APP创建,数据源,功能菜单等 服务器环境部署 PC端/PDA端pc端/P…

使用YOLOV8实现滑块缺口验证码识别,并使用Fastdeploy快速部署,精度高达99%!!

前言:首先大家对滑块缺口验证码的识别应该有很多经验了,大部分人可能阅读过我的文章或者其他人的文章,能从各方了解到,滑块缺口的各种实现方式,例如模板匹配、边缘检测、提取透明通道、yolov5,paddledection等,此篇文章将会讲解yolov8的使用和训练,yolov8相对于yolov5有…

真心牛x,阿里出品2023最新版Spring全家桶进阶笔记流出,堪称Java程序员跳槽神器

最近小伙伴在我后台留言是这样的&#xff1a; ​现在就这光景&#xff0c;不比以前&#xff0c;会个CRUD就有人要&#xff0c;即使大部分公司依然只需要做CRUD的事情......现在去面试&#xff0c;只会CRUD还要被吐槽&#xff1a; ​面试造火箭&#xff0c;工作拧螺丝&#xff0…

六级备考23天|CET-6|翻译技巧5|2019年12月真题|翻译荷花lotus|11:05-12:05

目录 一、中文 句子1 PRACTICE ANSWER 句子2 PRACTICE ANSWER 句子3 ​ PRACTICE ANSWER 句子4 PRACTICE ANSWER 句子5 PRACTICE ANSWER 句子6 PRACTICE ANSWER ​ 答案整合​ 一、中文 句子1 荷花是中国的名花之一&#xff0c;深受人们喜爱。 PRACTICE Lotus is one…

CMakeLists.txt 文件详解

目录 CMakeLists.txt 常见内容和结构: 文件中的命令和配置&#xff1a; 官方文档&#xff1a; CMakeLists.txt CMakeLists.txt 文件是用于描述 CMake 构建过程和项目配置的文件。它包含了一系列 CMake 命令、变量设置和流程控制结构&#xff0c;用于告诉 CMake 如何生成适合…

pycharm中关于debug模式中按钮的介绍

文章目录 前言一、pycharm中debug的按钮介绍&#xff08;横排按钮&#xff09;二、pycharm中debug的按钮介绍&#xff08;竖排按钮&#xff09;总结 前言 遇到了debug模式下的调试按钮问题。 一、pycharm中debug的按钮介绍&#xff08;横排按钮&#xff09; 步过&#xff1a;s…

七人拼团系统开发模式,助力企业三个月新增超十万会员!

现在市场上最不缺的就是好产品&#xff0c;产品在市场上目前已经趋于饱和。要想让自己的产品或企业快速打入市场&#xff0c;最好的办法是结合好的营销模式&#xff0c;让企业快速起步裂变提升销量。现在就有这么一款模式&#xff0c;助力企业在三个月内就新发展了超十万会员&a…