前段时间在CSDN上溜达的时候发现有人发帖问一道算法题的解法,看到之后感觉很有意思。题目如下
题目描述:一个正整数有可能可以被表示为 n(n>=2) 个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
看到这道题后很容易想到第一中解法,就是2层循环的解法。不过感觉该算法的效率太低,我看到这个题目就立即想起了求和公式,我知道肯定有效率高的解法,刚好也没事就想着做做看。经过了一段时间的推导,我终于把程序完成了。程序代码如下,使用C++写得。
int main(void) {
int n;
cout<<"please input a num: n=";
cin>>n;
if(n%2)
cout<<n/2<<" "<<n/2+1<<endl;
for(int i=3;i<n;++i){
if(!(2*n%i)&&(i*i+i>2*n)){
int temp=i-(i+2*n/i-1)/2;
for(int j=0;j<2*n/i;++j)
cout<<temp+j<<" ";
cout<<endl;
}
}
}
程序大概就是这个样子,感觉这样写出来的程序效率就比常规的解法要高很多,达到了O(n)级别。整个程序的主要思路就是围绕着求和公式进行的,只要稍微推导下就能明白程序的意思了。
若一个数k满足题目的要求,比如可以分解成k=m+(m+1)+....+n,那么按照求和公式可以得到等式:
(m+n)*(n-m+1)/2=k ------> 2*k=(m+n)*(n-m+1); -----> 2*k一定可以分解成2个整数相乘,即可以被2个整数整除。设m+n=i ------> n-m+1=2*k/i ------> m=i-i+(2*k/i-1)/2 根据题目要求 m>0 就可以得出约束条件,这样再看程序就一目了然。
后来我又从百度之星上发现了这道题,才知道原来是2005的第一题。
分享到:
相关推荐
4. 逻辑思维与问题分析:百度之星试题往往需要参赛者具备良好的逻辑思维能力,能准确理解和分析问题,找出最优解法。这包括对问题的抽象、分解、模型建立和求解策略设计。 5. 人工智能与机器学习:随着时间的发展,...
2006年的百度之星程序设计大赛复赛中,第四题便是基于这个游戏机制设定的算法挑战。本题要求参赛者编写程序解决Zuma游戏中的消除策略,以达到最高的得分效率。 在Zuma游戏中,玩家控制一个可移动的彩球,目标是通过...
文档“百度之星点评.doc”很可能是详细列举了每一道试题,分析了其背后的逻辑,解释了最优解法,并可能给出了示例代码或者伪代码。这样的资源对于准备类似比赛的程序员来说极其宝贵,因为它不仅可以帮助他们了解过去...
百度之星程序设计大赛作为国内知名的编程赛事,每年都会吸引众多技术爱好者参与,旨在挑战参赛者的算法设计、逻辑思维和问题解决能力。本资源包含的"百度之星程序设计大赛试题和答案"是一份珍贵的学习材料,对于想要...
一道 Google 竞赛题的解法,看看
新数通 HCIE3.0 LAB完整版【拓扑+TS+TAC+解法】解法题库新增论述题HCIE笔试题库,同时赠送ENSP软件,用于2022年6月底HCIE数通笔试及LAB实验考试。 1、HCIE数通笔试背过里面题库去考全部通过 2、HCIE LAB拓扑及解法,...
2016年的杭州电子科技大学(简称“杭电”)笔试中,出现了一道关于从文本文件中提取并计算所有数字之和的问题。此题目不仅考察了应聘者的编程能力,还检验了他们处理文件读取、正则表达式匹配等技能。 #### 题目...
微分方程数值解法是计算科学中一个重要的分支,主要研究如何用数值方法近似求解微分方程。本资料提供了相关习题的答案,包括特征线的求解、差分格式的导出、有限体积法的应用以及稳定性的证明等。 1. 特征线分析:...
历年全国数学建模试题及解法归纳及06~08年全国赛题评阅要点
在数值分析领域,偏微分方程(PDEs)的数值解法是核心内容之一。这些题目涉及到了多种常见的PDE数值解方法,包括差分格式、紧差分格式以及Euler方法等。以下是对各个题目的详细解析: 1. 对于第一题中的定解问题,...
一元二次方程练习题解法.doc
信息系统项目管理师运筹学历年真题解法汇总笔记,整理了历年的真题和讲解,有需要的请下载。
中小学数学奥赛题解法分析.pdf
### 一道力学题的四种解法 #### 题目背景 题目要求分析一架飞机在空中以恒定速度沿水平圆形轨道转弯时,螺旋桨尖端与螺旋桨中心连线与竖直线成特定角度时,该点的速度及加速度。已知螺旋桨长度以及螺旋桨自身的旋转...
HCIE-Datacom LAB(含论述题解法) 考试环境介绍考试流程介绍前言 传统网改造及升级(40分) LAN WAN融合(25分) 广域承载网络建设(25分) python编程(10分) 论述(解法)
通过熟练掌握各种方法,如直接求解、图像分析和特殊化策略,考生可以在填空题中提高解题效率和准确性,避免因一步之差导致全题失分的情况发生。在备考过程中,考生应该重视基础训练,多做练习,提升对各类题型的敏感...
09年中考数学应用题解法集锦.ppt
例谈中考历史材料分析题解法.doc
高二化学化学平衡图像题解法PPT学习教案.pptx
本文以一道涉及物理和数学知识的奥赛题目为例,深入剖析了该题所涉及的解题方法和技巧,揭示了如何通过不同的策略来分析和解决问题。 首先,微元法是解决这类问题的常用方法之一。通过微元法,我们能够将复杂的问题...