`
celebration
  • 浏览: 35177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

百度之星的一道题的解法

阅读更多

前段时间在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年百度之星程序设计大赛复赛第4题 彩球游戏(zuma) 解法

    2006年的百度之星程序设计大赛复赛中,第四题便是基于这个游戏机制设定的算法挑战。本题要求参赛者编写程序解决Zuma游戏中的消除策略,以达到最高的得分效率。 在Zuma游戏中,玩家控制一个可移动的彩球,目标是通过...

    百度之星07年试题点评

    文档“百度之星点评.doc”很可能是详细列举了每一道试题,分析了其背后的逻辑,解释了最优解法,并可能给出了示例代码或者伪代码。这样的资源对于准备类似比赛的程序员来说极其宝贵,因为它不仅可以帮助他们了解过去...

    百度之星程序设计大赛试题和答案

    百度之星程序设计大赛作为国内知名的编程赛事,每年都会吸引众多技术爱好者参与,旨在挑战参赛者的算法设计、逻辑思维和问题解决能力。本资源包含的"百度之星程序设计大赛试题和答案"是一份珍贵的学习材料,对于想要...

    一道 Google 竞赛题的解法

    一道 Google 竞赛题的解法,看看

    新数通HCIE3.0 LAB完整版【拓扑+TS+TAC+解法】解法题库新增论述题HCIE笔试题库

    新数通 HCIE3.0 LAB完整版【拓扑+TS+TAC+解法】解法题库新增论述题HCIE笔试题库,同时赠送ENSP软件,用于2022年6月底HCIE数通笔试及LAB实验考试。 1、HCIE数通笔试背过里面题库去考全部通过 2、HCIE LAB拓扑及解法,...

    2016年杭电笔试题第二题解法(Ruby解法)

    2016年的杭州电子科技大学(简称“杭电”)笔试中,出现了一道关于从文本文件中提取并计算所有数字之和的问题。此题目不仅考察了应聘者的编程能力,还检验了他们处理文件读取、正则表达式匹配等技能。 #### 题目...

    微分方程数值解法习题答案.pdf

    微分方程数值解法是计算科学中一个重要的分支,主要研究如何用数值方法近似求解微分方程。本资料提供了相关习题的答案,包括特征线的求解、差分格式的导出、有限体积法的应用以及稳定性的证明等。 1. 特征线分析:...

    历年全国数学建模试题及解法归纳

    历年全国数学建模试题及解法归纳及06~08年全国赛题评阅要点

    偏微分方程数值解法习题

    在数值分析领域,偏微分方程(PDEs)的数值解法是核心内容之一。这些题目涉及到了多种常见的PDE数值解方法,包括差分格式、紧差分格式以及Euler方法等。以下是对各个题目的详细解析: 1. 对于第一题中的定解问题,...

    一元二次方程练习题解法.doc

    一元二次方程练习题解法.doc

    运筹学历年真题解法汇总笔记

    信息系统项目管理师运筹学历年真题解法汇总笔记,整理了历年的真题和讲解,有需要的请下载。

    中小学数学奥赛题解法分析.pdf

    中小学数学奥赛题解法分析.pdf

    一道力学题的四种解法.docx

    ### 一道力学题的四种解法 #### 题目背景 题目要求分析一架飞机在空中以恒定速度沿水平圆形轨道转弯时,螺旋桨尖端与螺旋桨中心连线与竖直线成特定角度时,该点的速度及加速度。已知螺旋桨长度以及螺旋桨自身的旋转...

    HCIE-Datacom LAB(含论述题解法)

    HCIE-Datacom LAB(含论述题解法) 考试环境介绍考试流程介绍前言 传统网改造及升级(40分) LAN WAN融合(25分) 广域承载网络建设(25分) python编程(10分) 论述(解法)

    高三数学填空题解法PPT课件.pptx

    通过熟练掌握各种方法,如直接求解、图像分析和特殊化策略,考生可以在填空题中提高解题效率和准确性,避免因一步之差导致全题失分的情况发生。在备考过程中,考生应该重视基础训练,多做练习,提升对各类题型的敏感...

    09年中考数学应用题解法集锦.ppt

    09年中考数学应用题解法集锦.ppt

    例谈中考历史材料分析题解法.doc

    例谈中考历史材料分析题解法.doc

    高二化学化学平衡图像题解法PPT学习教案.pptx

    高二化学化学平衡图像题解法PPT学习教案.pptx

    从一道题看奥赛所涉及的解题方法和技巧.pdf

    本文以一道涉及物理和数学知识的奥赛题目为例,深入剖析了该题所涉及的解题方法和技巧,揭示了如何通过不同的策略来分析和解决问题。 首先,微元法是解决这类问题的常用方法之一。通过微元法,我们能够将复杂的问题...

Global site tag (gtag.js) - Google Analytics