等差数列(蓝桥杯,acwing每日一题)

题目描述:

数学老师给小明出了一道等差数列求和的题目。

但是粗心的小明忘记了一部分的数列,只记得其中 N 个整数。

现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?

输入格式:

输入的第一行包含一个整数 N。

第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN。(注意 A1∼An 并不一定是按等差数
列中的顺序给出)

输出格式:

输出一个整数表示答案。

数据范围:

2≤N≤100000
0≤Ai≤109

输入样例:

5
2 6 4 10 20

输出样例:

10

样例解释:

包含 2、6、4、10、20的最短的等差数列是 2、4、6、8、10、12、14、16、18、20

分析步骤:

  第一:我们拿到这道题目,我们就知道要求等差数列。我们就再来想一下等差数列的特点是什么?就是每两个相邻的数之间的差是一定的。并且等差数列的个数就是队尾数的值-队头数的值的差除以等差值再减去1到此我们就应该知道我们要求出等差值,我们如何去求呢?我们只需要将两个相邻的数的差值求出来,在求解出他们的最大公约数,每两个数之间都做一下这个操作,然后进行动态更新,就可以得出我们的等差值了。

  第二:书写主函数,构建整体框架:

  • 输入值,然后进行排序,因为题目中提到这些数不一定会按照顺序给出,所以先排个序保证顺序是对的。

  • 定义一个值,用他来动态更新我们的等差值,我们只需要求出两个相邻的数之间的最大公约数就可以。

  • 最终我们判断一下,如果d是0的话就证明这个等差数列是0,0,0......的所以输出0

  • 否则初中学过的代入公式就可以得出答案

int main()
{int n;scanf("%d", &n);for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);sort(a, a + n);int d = 0;for (int i = 1; i < n; i ++ ) d = gcd(d, a[i] - a[0]);if (!d) printf("%d\n", n);else printf("%d\n", (a[n - 1] - a[0]) / d + 1);return 0;
}

  第三:书写辗转相除法:

  • 这是递归写的,大家不懂的拿起笔写出每一层是怎么运行的就明白了。

  • 这是一个非常重要的模板,也是代码最少的模板,大家一定要记清楚。

int gcd(int a, int b)
{return b ? gcd(b, a % b) : a;
}

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int N = 100010;int a[N];int gcd(int a, int b)
{return b ? gcd(b, a % b) : a;
}int main()
{int n;scanf("%d", &n);for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);sort(a, a + n);int d = 0;for (int i = 1; i < n; i ++ ) d = gcd(d, a[i] - a[0]);if (!d) printf("%d\n", n);else printf("%d\n", (a[n - 1] - a[0]) / d + 1);return 0;
}

 

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

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

相关文章

基于vscode Arduino插件开发Arduino项目

基于vscode Arduino插件开发arduino项目 插件配置问题记录1. 指定编译输出文件夹2. 编译下载时不输出详细信息3. 输出端口信息乱码4. 通过串口输出中文&#xff0c;vscode对应的串口助手上会显示乱码&#xff08;未解决&#xff09; 插件配置 环境&#xff1a;Arduino插件版本…

苏州金龙助力旅游客运加速蜕变

近日&#xff0c;北京铭悦旅游客运有限公司又迎来一批苏州金龙海格纯电动客车。&#xff08;以下简称北京铭悦旅游&#xff09;总经理郭保生在车辆交付时说到&#xff0c;“为迎接强劲复苏的旅游市场&#xff0c;要求旅游客运向绿色客运转型&#xff0c;以及人民对品质生活、美…

【LeetCode热题100】51. N 皇后(回溯)

一.题目要求 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方…

4.3学习总结

[HNCTF 2022 WEEK2]Canyource&#xff08;无参数&#xff09; 通过这题又接触了一种无参数RCE的方法&#xff0c;前面学习的getallheaders只有在apache环境下才能使用&#xff0c;具有一定的局限性 这里是利用php函数来构造读取flag的方法 localeconv() – 函数返回一个包含本…

数字资产与数据资产的区别

在当今的数字时代&#xff0c;数字资产和数据资产是两个经常被提及的概念。虽然它们都与数字领域有关&#xff0c;但它们有着明显的区别。 数字资产是指以数字形式存在的、具有一定价值的资产。这些资产可以是数字货币、数字版权、数字艺术品、虚拟世界中的资产等。数字资产的…

OpenGL/DirectX/Metal/Vulkan

我想了解一下上面提到的东西&#xff0c;大体上指什么&#xff1f; DirectX、Vulkan和OpenGL是什么&#xff1f;什么是图形API&#xff1f;_哔哩哔哩_bilibili 图形API&#xff1a;图形化的应用程序编程接口 Vulkan和OpenGL都是图形API。 OpenGL:开源&#xff0c;跨平台 …

PyTorch示例——使用Transformer写古诗

文章目录 PyTorch示例——使用Transformer写古诗1. 前言2. 版本信息3. 导包4. 数据与预处理数据下载先看一下原始数据开始处理数据&#xff0c;过滤掉异常数据定义 词典编码器 Tokenizer定义数据集类 MyDataset测试一下MyDataset、Tokenizer、DataLoader 5. 构建模型位置编码器…

当Pycharm中右键运行python程序时出现Run ‘pytest in tests ***py‘,如何解决?

1、在Pycharm中右键运行python程序时出现Run pytest in tests ***py &#xff0c;这是进入了Pytest模式。 2、解决办法 进入到File->Settings->Tools->Python integrated Tools页面或者快捷键&#xff08;CtrlAltS&#xff09; 找到Testing下的Default test runner …

CSS属性排序的插件和包

原文链接 pnpm i stylelint postcss postcss-html stylelint-config-standard stylelint-config-prettier stylelint-config-recess-order stylelint-config-html stylelint-config-recommended-scss stylelint-config-standard-scss -Dpnpm add stylelint-order -D添加文件&a…

Ubuntu Desktop 安装有道词典

Ubuntu Desktop 安装有道词典 1. 有道词典2. Installation2.1. 解压 deb 包到 youdao 目录2.2. 解压 deb 包中的 control 信息 (包的依赖写在该文件里面)2.3. 编辑 control 文件&#xff0c;删除依赖里面的 gstreamer0.10-plugins-ugly2.4. 创建 youdaobuild 目录&#xff0c;重…

Openstack(T)部署ceph集群 ceph-14.2.22-nautilus

https://www.cnblogs.com/liugp/p/12513702.html 我的部署参考上述文档&#xff0c;以下针对部署有不同的地方进行说明 1.节点的ceph源进行修改 [Ceph] nameCeph packages for $basearch baseurlhttp://download.ceph.com/rpm-nautilus/el7/$basearch enabled1 gpgcheck1 ty…

大模型量化技术-GPTQ

大模型量化技术-GPTQ 2022年,Frantar等人发表了论文 GPTQ:Accurate Post-Training Quantization for Generative Pre-trained Transformers。 这篇论文详细介绍了一种训练后量化算法,适用于所有通用的预训练 Transformer模型,同时只有微小的性能下降。 GPTQ算法需要通过…

rocketmq的运维

1. admintool创建topic的时候 -o 的用法含义 https://rocketmq.apache.org/zh/docs/4.x/producer/03message2/ 有关orderMessageEnable和returnOrderTopicConfigToBroker的设置可以参考 https://blog.csdn.net/sdaujsj1/article/details/115741572 -c configFile通过-c命令指…

typdef:深入理解C语言中typdef关键词的用法

typedef&#xff1a;C语言中的类型重命名关键词 在C语言中&#xff0c;typedef 是一个非常有用的关键词&#xff0c;它允许我们为现有的数据类型定义一个新的名称。这不仅使得代码更加清晰易读&#xff0c;还提高了代码的可维护性。在这篇博客中&#xff0c;我们将深入探讨 ty…

小核引导RTOS

参考 参考1. How does FSBL load the FreeRTOS on the small core and execute it?参考2. Duo now supports big and little cores?Come and play!Milk-V Duo, start&#xff01; 日志 FSBL Jb2829:g362832ac6-dirty:2024-04-02T13:31:1100:00 # 版本信息 st_on_reason…

typescript的工作流

先coding code.ts代码&#xff0c;由tsc编译code.ts生成code.js格式 npm install —save-dev lite-server 是用来安装轻量级的服务器&#xff0c;只是用来开发的一个服务器&#xff0c;真正到生产环境中时可能会使用类似于Apache的server或者汤姆猫一类的服务器&#xff0c;安…

编程生活day6--回文子串、蛇形填充数组、笨小猴、单词排序

回文子串 题目描述 给定一个字符串&#xff0c;输出所有长度至少为2的回文子串。 回文子串即从左往右输出和从右往左输出结果是一样的字符串&#xff0c;比如&#xff1a;abba&#xff0c;cccdeedccc都是回文字符串。 输入 一个字符串&#xff0c;由字母或数字组成。长度5…

spring-boot集成websocket

引入Maven依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>跟随spingboot版本</version> </dependency>后端代码 /*** 开启WebSocket支持*…

【嵌入式开发 Linux 常用命令系列 8 -- shell 命令 basename 介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 shell 命令 basenamedf 命令 shell 命令 basename 在 shell 脚本中&#xff0c;可以使用 basename 命令来获取文件的基本名称&#xff08;不带路径的部分&#xff09;。以下是如何将文件名赋值给变量的示例&#xff1a; file_pat…

STM32CubeMX配置步骤详解四 —— 基础配置(1)

接前一篇文章&#xff1a;STM32CubeMX配置步骤详解三 —— 安装 本文内容主要参考&#xff1a; STM32CUBEMX配置教程&#xff08;一&#xff09;基础配置-CSDN博客 特此致谢&#xff01; 三、STM32CubeMX基础配置 前边几回讲解了STM32CubeMX的下载及安装。当前STM32CubeMX已…