用C语言高效地打印杨辉三角

假设杨辉三角的通项公式为a(n),则打印形式如下:

然而我们知道,它应该是这样的:

三角形两边的值都为1,且每个元素的值都为该元素正上方和其正上方前面的元素的值之和。

为了实现这个代码,我们需要知道每行首元素和每行最后一个元素的下标随着行的变化而对应的函数表示。我们很容易得到:

 

然后利用定义,也即: 每个元素的值都为该元素正上方和其正上方前面的元素的值之和。

易得:

很自然的,我们实现了关于杨辉三角的打印的相关代码。 以下是代码,具体信息已经写在注释里了。

#include <stdio.h>//b函数返回的是第n行第一个元素的下标
int b(int n)
{return (n * n - n + 2) / 2;
}//c函数返回的是第n行最后一给元素的下标
int c(int n)
{return (n * n + n) / 2;
}int main()
{int n;int a[10000] = {0};int row = 1;printf("请输入要打印的行数:>");scanf("%d", &n);int i = 1;//打印行while (row <= n){//将每行的两边的元素都置为1a[b(row)] = 1;a[c(row)] = 1;//打印列for (int j = 0; j < row; j++){if (c(row) - b(row) > 1){//只要每一行的首尾之间还有元素则进去for (int i = 1; b(row) + i < c(row);i++){//利用杨辉三角的定义,为每个元素计算出值a[b(row) + i] = a[b(row - 1) + (i - 1)] + a[b(row - 1) + i];}}printf("%-4d  ",a[i]);i++;}row++;printf("\n");}
}

程序的运行:

 

 

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

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

相关文章

最新SQLMap进阶技术

点击星标&#xff0c;即时接收最新推文 本文选自《web安全攻防渗透测试实战指南&#xff08;第2版&#xff09;》 五折购买链接&#xff1a;u.jd.com/3ibjeF6 SQLMap进阶&#xff1a;参数讲解 &#xff08;1&#xff09;--level 5&#xff1a;探测等级。 参数“--level 5”指需…

数据库签名的那些事儿

写在前面&#xff0c;关于签名的应用场景 除了我们后端经常使用的接口签名来校验数据这些常见的场景&#xff0c;对于数据安全性要求比较严格的业务来说&#xff0c;大部分落库的核心数据 也都需要签名&#xff0c;为啥? 因为怕数据库的数据被篡改数据或者被攻击了&#xff0c…

vue2.7如何使用vue-i18n

版本&#xff1a; vue&#xff1a;2.7.0 vue-i18n&#xff1a;8.28.2 一、下载 npm i vue-i18n8.28.2二、新建 新建一个文件&#xff0c;例如&#xff1a;lang&#xff0c;项目结构如下&#xff1a; index.js&#xff1a; import Vue from vue import VueI18n from vue-i18n…

Go Windows下开发环境配置(图文)

Go Windows下开发环境配置 下载 安装 点击下载的安装包进行安装。安装路径可以选择到自己的目录。 环境变量配置 GOROOT&#xff1a;&#xff08;指定到安装目录下&#xff09; GOPATH&#xff1a;&#xff08;是工作空间&#xff09; path&#xff1a;在安装时已经添加了…

go-admin 使用开发

在项目中使用redis 作为数据缓存&#xff1a;首先引入该包 “github.com/go-redis/redis/v8” client : redis.NewClient(&redis.Options{Addr: config.QueueConfig.Redis.Addr, // Redis 服务器地址Password: config.QueueConfig.Redis.Password, // Redis 密码&…

UNIX 系统概要

UNIX 家族UNIX 家谱家族后起之秀 LinuxUNIX vs LinuxUNIX/Linux 应用领域 UNIX 操作系统诞生与发展UNIX 操作系统概要内核常驻模块shell虚拟计算机特性 其他操作系统 LinuxRichard StallmanGNU 项目FSF 组织GPL 协议Linus Torvalds UNIX 家族 有人说&#xff0c;这个世界上只有…

网络安全设备及部署

什么是等保定级&#xff1f; 之前了解了下等保定级&#xff0c;接下里做更加深入的探讨 文章目录 一、网路安全大事件1.1 震网病毒1.2 海康威视弱口令1.3 物联网Mirai病毒1.4 专网 黑天安 事件1.5 乌克兰停电1.6 委内瑞拉电网1.7 棱镜门事件1.8 熊猫烧香 二、法律法规解读三、安…

OpenCV 中的光流 (C++/Python)

什么是光流? 光流是一项视频中两个连续帧之间每像素运动估计的任务。基本上,光流任务意味着计算像素的位移矢量作为两个相邻图像之间的对象位移差。光流的主要思想是估计物体由其运动或相机运动引起的位移矢量。 理论基础 假设我们有一个灰度图像——具有像素强度的矩阵。我…

【知网检索稳定】第五届经济管理与文化产业国际学术会议(ICEMCI 2023)

抓住数字经济的发展机遇&#xff0c;推动当前文化旅游产业与经济的深度融合才能不断推进经济大格局。第五届经济管理与文化产业国际学术会议&#xff08;ICEMCI 2023&#xff09;将继续围绕“经济管理”与“文化产业”两大研究领域展开讨论&#xff0c;旨在为相关研究方向的专家…

Talk | 清华大学交叉信息研究院助理教授许华哲:具身控制中的泛化能力

本期为TechBeat人工智能社区第520期线上Talk&#xff01; 北京时间8月9日(周三)20:00&#xff0c;清华大学交叉信息研究院助理教授—许华哲的Talk已准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “具身控制中的泛化能力”&#xff0c;从具身控制中视觉外…

手机app测试

一、安装、卸载、更新、运行 1.安装、卸载 应用是否可以正常安装&#xff08;命令行安装&#xff1b;apk&#xff0f;ipa安装包安装&#xff09;&#xff08;有网&#xff0c;无网是否都正常&#xff09;卸载过程中出现死机&#xff0c;断电&#xff0c;重启等意外的情况&…

小程序自动化测试的示例代码

目录 背景 自动化 SDK 还原用户行为 总结 背景 上述描述看似简单&#xff0c;但是中间还是有些难点的&#xff0c;第一个难点就是如何在业务人员操作小程序的时候记录操作路径&#xff0c;第二个难点就是如何将记录的操作路径进行还原。 自动化 SDK 如何将操作路径还原这…

哪个类包含clone方法?是Cloneable还是Object?

在Java中&#xff0c;clone方法是定义在Object类中的。所有的Java类都继承自Object类&#xff0c;因此每个Java对象都继承了clone方法。然而&#xff0c;要成功地使用clone方法&#xff0c;需要满足一些条件&#xff0c;其中之一是被克隆的类必须实现Cloneable接口。 虽然clone…

[C#] 简单的俄罗斯方块实现

一个控制台俄罗斯方块游戏的简单实现. 已在 github.com/SlimeNull/Tetris 开源. 思路 很简单, 一个二维数组存储当前游戏的方块地图, 用 bool 即可, true 表示当前块被填充, false 表示没有. 然后, 抽一个 “形状” 类, 形状表示当前玩家正在操作的一个形状, 例如方块, 直线…

OCR让纸质文档秒变电子文档,让自动驾驶成为现实

OCR文字识别具有广泛的应用范围&#xff0c;以下是一些常见和广泛应用的领域&#xff1a; 1. 文档数字化&#xff1a;OCR可以将印刷的文档、书籍、报纸等纸质文档转换为可编辑和可搜索的电子文本&#xff0c;从而实现文档的数字化存储和管理。这在图书馆、档案馆、企业和政府机…

关于eclipse导入部署具有增删改查的项目

目录 前言&#xff1a;当我们刚刚进入公司的第一步就是去部署当前公司的项目&#xff0c;本博客就是详细介绍怎么去部署当前公司的项目。 一&#xff0c;开发工具&#xff1a; 二&#xff0c;具体步骤&#xff1a; 2.1导入公司的项目 打开eclipse开发工具 2.2配置当前的环…

Django实现音乐网站 ⑺

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是后台对歌手原有实现功能的基础上进行优化处理。 目录 新增编辑 表字段名称修改 隐藏单曲、专辑数 姓名首字母 安装xpinyin 获取姓名首字母 重写保存方法 列表显示 图片显示处理 引入函数 路径改为显示…

oracle sql developer批量删除某个用户

随着navicate收费&#xff0c;还得破解&#xff0c;pl/sql developer配置麻烦&#xff0c;最近使用oracle sql developer来试试oracle的操作如何&#xff1b; 用着还行&#xff0c;没有卡顿现象&#xff0c; 最近要oracle sql developer批量删除某个用户下所有的表&#xff0…

如何恢复已删除的 PDF 文件 - Windows 11、10

在传输数据或共享专业文档时&#xff0c;大多数人依赖PDF文件格式&#xff0c;但很少知道如何恢复意外删除或丢失的PDF文件。这篇文章旨在解释如何有效地恢复 PDF 文件。如果您身边有合适的数据恢复工具&#xff0c;PDF 恢复并不像看起来那么复杂。 便携式文档格式&#xff08…

原型模式与享元模式:提升系统性能的利器

原型模式和享元模式&#xff0c;前者是在创建多个实例时&#xff0c;对创建过程的性能进行调优&#xff1b;后者是用减 少创建实例的方式&#xff0c;来调优系统性能。这么看&#xff0c;你会不会觉得两个模式有点相互矛盾呢&#xff1f; 在有些场景下&#xff0c;我们需要重复…