- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
题目描述 Description对于一个自然数M,求出所有的连续.ppt
题目描述?Description 对于一个自然数M,求出所有的连续的自然数段,使得这些连续自然数段的全部数字和为M.eg:1998+1999+2000+2001+2002=10000,所以从1998到2002的一个自然数段为M=10000的一个解。? 输入描述?Input Description 一个数M 输出描述?Output Description 每行两个数,为连续自然数段的一头一尾,所有输出行的第一个数按照升序排列 样例输入?Sample Input 10000 样例输出?Sample Output 18 142 297 328 388 412 1998 2002 算法一:用i枚举起点,用j枚举落点,用k来枚举起点到落点,ans求和,很容易得到 for i:=1 to m-1 do for j:=i to m-1 do begin for k:=i to j do inc(ans,k); if ans=m then writeln(i, ,j); ans:=0; end; 算法二:类似于算法一,只不过生略掉k,直接用求和等差数列公式(首项+末项)*项数/2,得到: for i:=1 to m-1 do for j:=i to m-1 do if (i+j)*(j-i+1)/2=m then writeln(i,‘ ’,j); 算法三:建立在算法二的基础上,用i枚举起点,进行二分查找结束点j,得到 function find(l,r:longint):longint; var x:longint; begin if lr then exit; x:=(l+r)div 2; if (i+x)*(x-i+1)/2=m then writeln(i, ,x) else if (i+x)*(x-i+1)/2m then find(l,x-1) else find(x+1,r); end; 算法四:对于算法二的优化,如果和大于m,j的扩大只会使和也扩大,所以就直接退出循环 for i:=1 to m-1 do for j:=i to m-1 do if (i+j)*(j-i+1)/2=m then writeln(i, ,j) else if (i+j)*(j-i+1)/2m then break; 八年级下学期时,将会学习一元二次方程的解法: 首先明确形如一元二次方程 ax^2+bx+c(a0)的求根公式 ? x=(-b+sqrt(b^2-4*a*c))/2 或 (-b-sqrt(b^2-4*a*c))/2 推导方法可以用配方法,左边配成一个完全平方式,右边只含有常数项,就可以求出x 算法五:设起点为i,共有n个数 则结束的数为(i+n-1)所以得 (i+i+n-1)*n/2=m ? n^2-(2*i-1)-2*m=0 ? 所以n=(1-2*i+sqrt((2*i-1)^2-4*1*(-2*m)))/2 ? ?(大家自行思考为什么忽略另一个解) ? ? ? ?n=(1-2*i+sqrt(4*i*i-4*i+1+8*m))/2 ? ? ? 所以只要用i枚举起点,在判断n是否为自然数然后输出 ? 就可以得到 ? for i:=1 to m-1 do ?if trunc((1-2*i+sqrt(4*i*i-4*i+1+8*m))/2) =(1-2*i+sqrt(4*i*i-4*i+1+8*m))/2 then writeln(i,‘ ’,i+((1-2*i+sqrt(4*i*i-4*i+1+8*m))/2-1):0:0); 算法六:以上五种算法都是枚举起点i,不妨换个角度,枚举长度i,设起点为x,则结束点为x+i-1,所以,(x+x+i-1)*i/2=m (2*x+i-1)*i=2*m 2*i*x+i*i-i=2*m 2*i*x=2*m-i*i+i x=(2*m-i*i+i)/(2*i) 只要判断x是否为自然数,然后输出。 注意:1.x为自然数 2.题目要求是升序输出,所以枚举长度是要倒序 for i:=trunc(sqrt(4*m+0.25)-0.5) downto 2 do if (trunc((-i*i+i+2*m)/(2*i))= (-i*i+i+2*m)/(2*i))and ((-i*i+i+2*m)/(2*i)0) then writeln((-i*i+i+2*m)/(
您可能关注的文档
- 镜子中的数学.ppt
- 长安大学团委微博运营手册(试行).doc
- 闭区间上二次函数最值求法大集合.doc
- 阅读小提示:1、读准字音,读通句子,把读不好的地方多读.ppt
- 阳光队员们要加油喽!这次没考好的,我们一起好好努力,争.ppt
- 附件2集美大学2014年辅修法学专业培养方案doc-附件2.doc
- 陈钰芬老师教学方案摘要表.doc
- 集合及其运算.ppt
- 集合知识点“大集合”.doc
- 雨果是浪漫主义手法的集大成者.ppt
- 2024年石油炼化企业消防系统升级合同2篇.docx
- 统计学期末考试题库:2025年误差控制与调查数据质量评估试题.pdf
- 2025年资产评估师职业资格考试真题卷:资产评估师职业资格考试备考资料试题.pdf
- 2025年自然灾害安全防范培训考试试题库与答案解析.pdf
- 消防执业资格考试题库(消防监督检查要点):法律法规解析与应用试题.pdf
- 高压电工考试必备:2025年高压设备维护保养计划与保养成本控制试题.pdf
- 2025年专升本艺术概论模拟试卷:艺术市场与文化产业市场调查与分析试题.pdf
- 2025年专升本艺术概论考试模拟卷:艺术审美心理在艺术市场中的作用试题.pdf
- 2025年专升本艺术概论考试模拟卷:艺术流派对比分析高分技巧.pdf
- 2024年草原生态放牧保护合同.docx
文档评论(0)