【C语言】每日一题,快速提升(3)!

🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

题目:杨辉三角 

在屏幕上打印杨辉三角。

1

1 1

1 2 1

1 3 3 1

…….........

解答:

按照题设的场景,能发现数字规律为:arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]。所以我们只要按照这个方法填表即可

代码:

#include <stdio.h>void yangHuiTriangle(int n)
{int arr[50][50] = { 1 }; //第一行直接填好,播下种子int i, j;for (i = 1; i < n; i++) //从第二行开始填{arr[i][0] = 1; //每行的第一列都没有区别,直接给1,保证不会越界。for (j = 1; j <= i; j++) //从第二列开始填{arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]; //递推方程}}for (i = 0; i < n; i++) //填完打印{for (j = 0; j <= i; j++){printf("%d ", arr[i][j]);}putchar('\n');}
}int main()
{int n = 0;scanf("%d\n", &n);//   打印几行yangHuiTriangle(n);return 0;
}

改进:

由于我在填第n行的杨辉三角时,只跟第n-1行的杨辉三角产生联系,不会跟之前的有联系,所以没必要保存每一行的杨辉三角,填一行打一行就行了,这样能让空间复杂度从n^2降低到n。但是在填数据的时候不能对之前的数据覆盖,所以需要从后向前填。而填杨辉三角顺序对结果是没有影响的,所以可以实现。

 代码:

#include <stdio.h>void yangHuiTriangle(int n)
{int arr[50] = { 1 };int i, j;printf("1\n"); //第一行就直接打印了for (i = 1; i < n; i++) //从第二行开始{for (j = i; j > 0; j--) //从后向前填,避免上一行的数据在使用前就被覆盖{arr[j] += arr[j - 1]; //公式同上,由于变成了一维,公式也变简单了。}for (j = 0; j <= i; j++) //这一行填完就直接打印了。{printf("%d ", arr[j]);}putchar('\n');}
}int main()
{int n = 0;scanf("%d\n", &n);//   打印几行yangHuiTriangle(n);return 0;
}

注意:这种方法虽然降低了空间复杂度,但只能保存最后一行的数据,不利于反复查询,两个填法各有各的适用场景。就本题而言,改进后的胜出。

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

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

相关文章

Flink学习(六)-容错处理

前言 Flink 是通过状态快照实现容错处理 一、State Backends 由 Flink 管理的 keyed state 是一种分片的键/值存储&#xff0c;每个 keyed state 的工作副本都保存在负责该键的 taskmanager 本地中。 一种基于 RocksDB 内嵌 key/value 存储将其工作状态保存在磁盘上&#x…

【MogDB】在ORACLE和MogDB中查看存储过程出参游标数据的方式

一、前言 使用ORACLE作为数据库的应用软件中&#xff0c;偶尔会遇到使用游标作为出参的存储过程&#xff0c;这种存储过程迁移到MogDB并不需要进行改造&#xff0c;但是在开发这样的存储过程时&#xff0c;开发人员偶尔会想要在数据库中测试执行一下&#xff0c;看看游标中的数…

向量数据库中的向量是什么?

在向量数据库中&#xff0c;向量通常指的是高维空间中的点或方向&#xff0c;它们由一组数值组成&#xff0c;这些数值表示该点在空间中的位置或方向。在机器学习和人工智能领域&#xff0c;向量经常用于表示各种类型的数据&#xff0c;如文本、图像、音频等。 具体来说&#x…

项目5-博客系统1(准备工作+博客列表+博客详情页)

1.创建项目 导入以下依赖 2.项目介绍 使⽤SSM框架实现⼀个简单的博客系统 共5个页面 2.1 前端页面展示 2.1.1 用户登录 2.1.2 博客发表页 2.1.3 博客编辑页 2.1.4 博客列表页 2.1.5博客详情页 2.2 功能描述: ⽤⼾登录成功后, 可以查看所有⼈的博客. 点击 <<查看全⽂…

Big Data and Cognitive Computing (IF=3.7) 计算机/大数据/人工智能期刊投稿

Special Issue: Artificial Cognitive Systems for Computer Vision 欢迎计算机/大数据/人工智能/计算机视觉相关工作的投稿&#xff01; 影响因子3.7&#xff0c;截止时间2024年12月31日 投稿咨询&#xff1a;lqyan18fudan.edu.cn 投稿网址&#xff1a;https://www.mdpi.com/j…

2024 计算机毕业设计之SpringBoot+Vue项目合集(源码+L文+PPT)

各位朋友大家好&#xff0c;有幸与屏幕前你们相识&#xff0c;博主现已经搬砖9年&#xff0c;趁着头发还充裕&#xff0c;希望给大家提供一些编程领域的帮助&#xff0c;深知计算机毕业生这个阶段的崩溃与闹心&#xff0c;让我们共同交流进步。 博主给大家列举了项目合集&#…

如何在PPT中获得网页般的互动效果

如何在PPT中获得网页般的互动效果 效果可以看视频 PPT中插入网页有互动效果 当然了&#xff0c;获得网页般的互动效果&#xff0c;最简单的方法就是在 PPT 中插入网页呀。 那么如何插入呢&#xff1f; 接下来为你讲解如何获得&#xff08;此方法在 PowerPoint中行得通&#…

coredump-x: sanitizer编译出现segmentfault

https://bugzilla.redhat.com/show_bug.cgi?id=1669117 https://github.com/dmlc/xgboost/pull/8878 从上面两个链接,看着已经解决了,需要使用新版本的gcc。 https://github.com/dmlc/xgboost/issues/8863 Using only ubsan works. Using only thread sanitizer works. (wi…

本地环境连接虚拟机中的数据库,虚拟机的防火墙允许从本地主机访问虚拟机的MySQL端口

要让本地环境可以访问虚拟机中的数据库&#xff0c;您可以按照以下步骤进行设置&#xff1a; 配置虚拟机网络&#xff1a; 确保虚拟机的网络设置为桥接模式&#xff0c;这样虚拟机可以获得与本地网络相同的IP地址段。 查看虚拟机IP地址&#xff1a; 在虚拟机中运行以下命令来查…

ChatGPT的黑科技让你的论文脱颖而出

ChatGPT无限次数:点击直达 html ChatGPT的黑科技让你的论文脱颖而出 导言 近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;ChatGPT作为一款优秀的文本生成模型正逐渐走进人们的视野。本文将介绍如何利用ChatGPT的黑科技让你的论文在激烈的学术竞争中脱颖而出。 …

吴恩达llama课程笔记:第七课llama安全工具

羊驼Llama是当前最流行的开源大模型&#xff0c;其卓越的性能和广泛的应用领域使其成为业界瞩目的焦点。作为一款由Meta AI发布的开放且高效的大型基础语言模型&#xff0c;Llama拥有7B、13B和70B&#xff08;700亿&#xff09;三种版本&#xff0c;满足不同场景和需求。 吴恩…

依靠ChatGPT打磨优质学术论文的步骤

ChatGPT无限次数:点击直达 依靠ChatGPT打磨优质学术论文的步骤 在当今信息爆炸的时代&#xff0c;学术写作已经成为许多研究者和学生的日常工作。然而&#xff0c;撰写一篇优质的学术论文并非易事&#xff0c;尤其是对于那些想要在学术界取得突破的人来说。幸运的是&#xff0…

.net 6 配置QuartZ定时任务

项目中需要用到QuartZ执行定时任务&#xff0c;在此记录一下学习过程。 Quartz安装 在VS2022中&#xff0c;通过Nuget包管理器安装Quartz 3.8.1 &#xff0c;这是.net 6 依赖的最高版本。 创建定时器任务 1、创建QuartzConfigurator 新建QuartzConfiguratorExtensions类&am…

【笔记】探索生成范式:大型语言模型在信息提取中的作用

探索生成范式&#xff1a;大型语言模型在信息提取中的作用 摘要介绍 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;挖掘无限可能&#xff0c;共同成长&am…

JRebelXRebel在线激活

包含所有新旧版本&#xff0c;包括2023.4.2、2023.4.1、2023.4.0、2023.3.2、2023.3.1、2023.3.0、2023.2.2、2023.2.1、2023.2.0、2023.1.2、2023.1.1 等以及所有2022版本 JRebel&XRebel激活服务器地址 激活服务器地址&#xff08;路线1,推荐&#xff09; https://jrebe…

基于Qt的二维码生成与识别

基于Qt的二维码生成与识别 一、获取QZxing开源库 1.通过封装的QZxing开源库生成和识别二维码&#xff0c;下载地址&#xff1a;GitCode - 开发者的代码家园https://gitcode.com/mirrors/ftylitak/qzxing/tree/master。 2.下载解压后&#xff0c;使用Qt Creator xx&#xff0…

解决npm run dev跑项目,发现node版本不匹配,怎么跑起来?【已解决】

首先问题点就是我们npm run dev 运行项目的时候发现出错&#xff0c;跑不起来&#xff0c;类型下面这种 这里的出错的原因在于我们的node版本跟项目的版本不匹配 解决办法 我这里的问题是我的版本是node14的&#xff0c;然后项目需要node20的&#xff0c;执行下面的就可以正…

Vue3(二):报错调试,vue3响应式原理、computed和watch,ref,props,接口

一、准备工作调试 跟着张天禹老师看前几集的时候可能会遇到如下问题&#xff1a; 1.下载插件&#xff1a;Vue Language Features (Volar)或者直接下载vue-offical 2.npm run serve时运行时出现错误&#xff1a;Error: vitejs/plugin-vue requires vue (&#xff1e;3.2.13) …