C语言 打印杨辉三角

news2024/11/26 2:13:15

杨辉三角的前五行如下:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

1、首先我们可以定义定义一个5行5列的二维数组 

 代码:

int main() {
	int arr[5][5] = { 0 };
	 初始化
	int i = 0;
	int j = 0;
	
//循环输出
	for (i = 0; i < 5; i++) {
		for (j = 0; j <5; j++) {
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}

	return 0;
}

2、通过观察我发现 杨辉三角的第一列和对角线上的元素都是1

      那么我们就把这个二维数组的第1列元素和 对角线元素都赋值为1

 i 代表行 j代表列  

代码:

int main() {
	int arr[5][5] = { 0 };
	 初始化
	int i = 0;
	int j = 0;
	for (i = 0; i < 5; i++) {
		for (j = 0; j < 5; j++) {
			if (j== 0) {
				arr[i][j] =1;
			}
			if (i == j) {
				arr[i][j] =1;
			}
		  
		}
	}
	// 
	//循环输出
	for (i = 0; i < 5; i++) {
		for (j = 0; j <5; j++) {
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}

	return 0;
}

3、通过观察可以发现 从数字2开始 它的值等于上一行的两个相邻元素相加

 即:a[i][j]=a[i-1][j-1]+a[i-1][j]

         2     =      1     +    1

         3     =      1     +    2      3  =    2    +    1   

 .... 以此类推

 

int main() {
	int arr[5][5] = { 0 };
	 初始化
	int i = 0;
	int j = 0;
	for (i = 0; i < 5; i++) {
		for (j = 0; j < 5; j++) {
			if (j== 0) {
				arr[i][j] =1;
			}
			if (i == j) {
				arr[i][j] =1;
			}
			if (i > 1 && j > 0) {
				arr[i][j] = arr[i - 1][j - 1] +arr[i - 1][j] ;
			}
		  
		}
	}
	// 
	//循环输出
	for (i = 0; i < 5; i++) {
		for (j = 0; j <5; j++) {
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}

	return 0;
}

4、去零

只用遍历这个二维数组 非零的元素 控制内层循环 j<i 即可

完整代码:

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

	return 0;
}

 

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

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

相关文章

华为OD机试之寻找相同子串(Java源码)

寻找相同子串 题目描述 给定一个字符串s&#xff0c;最多只能进行一次变换&#xff0c;返回变换后能得到的最小字符串&#xff08;按照字典序进行比较&#xff09;。 变换规则&#xff1a;交换字符串中任意两个不同位置的字符。 输入描述 一串小写字母组成的字符串s 输出描述 …

华硕天选FA506IU(R7 4600h)电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件配置 硬件型号驱动情况 主板华硕天选FA506IU 处理器AMD Ryzen 7 4600h已驱动 内存8GB DDR4 3200MHz已驱动 硬盘东芝 KXG5AZNV256G Windows 10已驱动 显卡集成显卡…

基于MapReduce的京东20年口红数据的分析与实现

基于MapReduce的京东20年口红数据的分析与实现 文章目录 基于MapReduce的京东20年口红数据的分析与实现一、前言二、数据可视化1、安装Python和Flask框架2、创建Flask应用程序3、创建基于Echarts的网页展示代码4、最终结果 三、最后我想说 一、前言 这是一个利用HadoopMapRedu…

Java设计模式(二)

系列文章目录 里氏替换原则 开闭原则 文章目录 系列文章目录前言一、里氏替换原则1.OO中的继承性的思考和说明2.里氏替换原则基本介绍 二、开闭原则1.开闭原则基本介绍 总结 前言 大家好呀&#xff0c;欢迎来到柚子的博客~让我们一起成长吧o(&#xffe3;▽&#xffe3;)ブ 提…

二、浏览器广告屏蔽插件_Adblock Plus

1、浏览器广告 在浏览器浏览内容时&#xff0c;有广告无可厚非&#xff0c;但有些网页做的太过分了。如广告影响了正常网页的浏览&#xff1b;广告内容低俗恶心。特推荐以下浏览器广告屏蔽插件。 2、浏览器广告屏蔽插件 2.1、Adblock Plus 简介 (1)这里推荐Adblock Plus插件…

有哪些代码调试工具推荐? - 易智编译EaseEditing

下面是一些常用的代码调试工具&#xff0c;它们可以帮助开发人员识别和解决代码中的问题&#xff1a; 调试器(Debugger)&#xff1a; 调试器是一种强大的工具&#xff0c;用于在代码执行过程中逐行执行和检查代码。它允许您设置断点、观察变量的值、跟踪函数调用和返回等。 …

通义千悟-阿里通义千问系列

【通义听悟】我发现了一个宝藏产品&#xff0c;推荐给你&#xff5e; https://tingwu.aliyun.com/u/T1YJJcJcc0030c30 工作学习AI助手&#xff0c;依托大模型&#xff0c;为每一个人提供全新的音视频体验。点击链接立即注册&#xff0c;公测期免费体验。 阿里的通义千问系列 …

Spring Boot如何实现分布式任务调度?

Spring Boot如何实现分布式任务调度&#xff1f; 随着互联网的快速发展&#xff0c;越来越多的企业开始将自己的业务迁移到分布式系统中。在这种情况下&#xff0c;分布式任务调度变得尤为重要。对于分布式系统中的每个任务来说&#xff0c;它需要在多个节点上定时执行&#x…

VMware虚拟机最新详细安装保姆级教程(2023年新版教程)

VMware最新详细安装保姆级教程&#xff08;2023年新版教程&#xff09; 大家好&#xff0c;我是洲洲&#xff0c;欢迎关注&#xff0c;一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大…

华为OD机试真题 Java 实现【获得完美走位】【2023Q1 100分】

一、题目描述 在第一人称射击游戏中&#xff0c;玩家通过键盘的 A、S、D、W 四个按键控制游戏人物分别向左、向后、向右、向前进行移动&#xff0c;从而完成走位假设玩家每按动一次键盘&#xff0c;游戏任务会向某个方向移动一步&#xff0c;如果玩家在操作一定次数的键盘并且…

曾经作为程序员的你为什么不当程序员了?现在在做什么?

去年年底&#xff0c;我把老板开了。因为实在干不下去了。 当时正赶着公司的新产品上线&#xff0c;整个团队都在通宵加班改bug&#xff0c;好不容易才在预定时间内上线&#xff0c;我们都想着能够喘口气了&#xff0c;甚至已经约好了今晚的海底捞&#xff0c;想着请大伙儿搓一…

Go中同/异步与锁的应用~~sync包

Go中锁的实现~~sync包 go中sync包中提供了互斥锁; 在前面Go中channel文章中我们使用了time.Sleep()函数使得main函数的Goroutine阻塞至所有协程Goroutine结束,但这并不是一个很好的办法,因为我们实际应用中并不能准确知道协程什么时候结束(这里面要考虑服务器的性能,网络波动以…

日志脱敏之后,无法根据信息快速定位怎么办?

日志脱敏之殇 小明同学在一家金融公司上班&#xff0c;为了满足安全监管要求&#xff0c;最近天天忙着做日志脱敏。 无意间看到了一篇文章金融用户敏感数据如何优雅地实现脱敏&#xff1f; 感觉写的不错&#xff0c;用起来也很方便。 不过日志脱敏之后&#xff0c;新的问题就…

将Parquet文件的数据导入Hive 、JSON文件导入ES

文章目录 将Parquet文件的数据导入Hive查询parquet文件格式编译cli工具查看元数据信息查询抽样数据 创建hive表 数据存储格式采用parquet加载文件 将json数据导入ESES批量导入api原始json文件内容索引结构重组json脚本重组后的json文件bulk api调用 将Parquet文件的数据导入Hiv…

Spring Boot如何实现分布式文件系统

Spring Boot如何实现分布式文件系统 随着数据量的不断增长&#xff0c;单机文件系统已经无法满足大规模数据存储和访问的需求&#xff0c;因此分布式文件系统变得越来越重要。本文将介绍如何使用 Spring Boot 实现分布式文件系统。 1. 分布式文件系统的设计 分布式文件系统是…

【JavaSE】Java基础语法(四十):UDP通信程序

文章目录 1. UDP发送数据2. UDP接收数据【应用】3. UDP通信程序练习【应用】4. UDP三种通讯方式 1. UDP发送数据 Java中的UDP通信 UDP协议是一种不可靠的网络协议&#xff0c;它在通信的两端各建立一个Socket对象&#xff0c;但是这两个 Socket只是发送&#xff0c;接收数据的对…

Doris的一些进阶用法

6.doris进阶 6.1修改表 6.1.1修改表名 示例&#xff1a; 将名为 table1 的表修改为 table2 SQLALTER TABLE table1 RENAME table2; -- 示例 ALTER TABLE aggregate_test RENAME aggregate_test1; 将表 example_table 中名为 rollup1 的 rollup index 修改为 rollup2 SQLA…

V2board 1.6.1 提权漏洞(web缓存投毒)

目录 复现环境&#xff1a; 漏洞产生的原因&#xff1a; 漏洞的利用以及复现&#xff1a; 复现环境&#xff1a; 在gethub中直接拉去docker镜像 vulhub/README.zh-cn.md at master vulhub/vulhub GitHub 漏洞产生的原因&#xff1a; 前端的认证方式与后端并没有进行区分…

【LeetCode热题100】打卡第9天:电话号码的字母组合

文章目录 电话号码的字母组合⛅前言&#x1f512;题目&#x1f511;题解 电话号码的字母组合 ⛅前言 大家好&#xff0c;我是知识汲取者&#xff0c;欢迎来到我的LeetCode热题100刷题专栏&#xff01; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xf…

本地运行 LLAMA GPT-3.5-TURBO开源项目

git&#xff1a; nomic-ai/gpt4all: gpt4all: an ecosystem of open-source chatbots trained on a massive collections of clean assistant data including code, stories and dialogue (github.com) 下载好源码后&#xff0c;的目录结构&#xff1a; 视频中说的 chat 目录…