当前位置: 首页 > news >正文

2019蓝桥杯真题平方序列(填空题) C语言/C++

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明想找到两个正整数 X 和 Y,满足2019<X<Y;2019^2, X^2, Y^2组成等差数列。
请你求出在所有可能的解中,X+Y 的最小值是多少?

运行限制
最大运行时间:1s
最大运行内存: 128M
所需变量

int a = 2019;//由于是填空题,我直接把2019赋值给a了

int x = 2020;//这是为了满足条件x比a大

int y = 2021;//满足条件y大于x也大于a

首先我们拿到这个题的时候,我们的第一感觉就是很难,而却算法所耗费的时间肯定很大,因为我们要不断的去尝试x和y同时满足!
那么我们的第一想法就是每次让x+1,然后也让y+1!仔细想想是不对的,这样肯定会不满足时间要求,时间复杂度太高了
因此我们想到一个更好的方法!
首先我们分析题目,我们要找的数要满足等差数列!
对于等差数列的性质就是第二个数(即x)与第一个数(a)的差值等于第三个数(y)与第二个数(x)的差值
用数学公式表示就是y*y-x*x = x*x - a*a

得到这个后,我们就可以明白了,当x+1,y不用直接+1,而是可以直接取向上取整(根号(2*x*x-a*a))
代码如下:

if(y < sqrt(2*x*x-2019*2019)){y = ceil(sqrt(2*x*x-2019*2019));}

如果对于y变化过大,那么当我们需要调整x的时候,我们就是(向上取整(开根号((y*y+a*a)/2)))
代码如下:

if(y > sqrt(2*x*x-2019*2019)){x = ceil(sqrt((y*y+2019*2019)/2));}

当然啦,终止条件就是满足等差数列性质,即y*y ==(2*x*x-2019*2019)我们就跳出循环!
该算法本人认为比较优,如果有更好的想法,欢迎q我!
完整代码如下(编译器是dev,语言是C语言):

#include <iostream>
#include<math.h>
using namespace std;
int main()
{int a = 2019,x = 2020,y = 2021;while(true){if(y*y ==(2*x*x-2019*2019)){break;}else if(y > sqrt(2*x*x-2019*2019)){x = ceil(sqrt((y*y+2019*2019)/2));}else if(y < sqrt(2*x*x-2019*2019)){y = ceil(sqrt(2*x*x-2019*2019));}}cout<<x+y<<endl;return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/11458.html

相关文章:

  • vue中,给一个URL地址,利用FileSaver.js插件下载文件到本地
  • 从0开始学python -34
  • 瑞典军事研究:从认知心理学的视角探讨军事创新进程
  • 【MySQL进阶-08】深入理解innodb存储格式,双写机制,buffer pool底层结构和淘汰策略
  • 5. AOP
  • ubuntu上尝试libpqxx库链接人大金仓
  • 【Python入门第十二天】Python 列表
  • Android 异步操作库 RxJava
  • 2021-12-05青少年软件编程(C语言)等级考试试卷(六级)解析
  • github 使用
  • Kubernetes集群维护—备份恢复与升级
  • 前端开发常用案例(二)
  • 基于springboot+vue的儿科保健计划免疫系统
  • 1.两数之和
  • 字符串匹配 - 模式预处理:KMP 算法(Knuth-Morris-Pratt)
  • 工程师手册:电源设计中的电容选用规则
  • 【安全开发】专栏文章汇总
  • 视频监控流程图4
  • 「JVM 编译优化」Java 语法糖(泛型、自动装箱/拆箱、条件编译)
  • Linux下的进程控制
  • QT 文件监视系统QFileSystemWatcher监视目录的改变directoryChanged和监视文件的改变fileChanged
  • Typescript基础知识(类型断言、类型别名、字符串字面量类型、枚举、交叉类型)
  • Windows系统扩充C盘空间系列方法总结
  • 华为OD机试 - 跳格子(Python)
  • Java配置文件的值注入
  • SAP 订单BOM与销售BOM的区别
  • 支付宝支付详细流程
  • TCP 的演化史-fast retransmit/recovery
  • CSS基础选择器,你认识多少?
  • ChatGPT入门案例|商务智能对话客服(三)