acm2058[通俗易懂]

acm2058[通俗易懂]intmain(){   intn,m; intl,i,a,b,s; while(scanf(“%d%d”,&n,&m),n+m)  { l=(int)sqrt(2*m); for(i=l;i>=1;i–)    { s=(2*m+i-i*i)/2; if(s%i==0)     


Jetbrains全系列IDE稳定放心使用

int main(){     
int n,m; 
int l,i,a,b,s; 
while (scanf(“%d%d”,&n,&m),n + m)    
{ 
l = (int)sqrt(2 * m); 
for (i = l; i >= 1; i–)        
{ 
s = (2*m + i – i*i)/2; 
if(s % i == 0)           
{ 
a = s / i; 
if(a+i-1 > n) break; 
printf(“[%d,%d]\n”,a,a + i – 1); 
} 
} 
printf(“\n”);   
} 
return 0; 
}  

最后,说一下我对代码的解释

假设:1,2,3,…,n中的i个数(a1,a2,…,ai)满足sum(a1,a2,…,ai)=m。

那么,1<=a1<=m,

当a1=1时,i=ai,i取得最大值,由于i*(1+i)/2=m,i=sqrt(2*m-i)<sqrt(2*m);

当a1=m时,i=1,i取得最小值。

所以,1<=i<=sqrt(2*m)。

同时我们知道,两个长度都为i却不相同的连续数列,它们的和不可能都等于m。

从上面的讨论可知,满足要求的数列的长度i在[1,sqrt(2*m)]之间,且不重复。

现在从sum(a1,a2,…,ai)=m反推,由于ai=a1+i-1,可知:

sum(a1,a2,…,ai) = (a1+ai)*i/2 = (a1+a1+i-1)*i/2= m

a1*i = (2*m+i-i*i)/2 = s

那么,存在1,2,3,…,n中的i个数(a1,a2,…,ai)满足sum(a1,a2,…,ai)=m,

等价于,对于s=(2*m+i-i*i)/2有:s%i=0(因为a1=s/i),且s/i+i-1<=n(因为ai=s/i+i-1)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186846.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正确处理Ordered Broadcasts「建议收藏」

    正确处理Ordered Broadcasts「建议收藏」
    原文:http://aoandroid.com/node/1414
     
     
    最近,Android官方开发员博客(DevelopersBlog)登载了Google巴西分布的一名工程师(
    BeloHorizonte )的文章,介绍了正确使用Broadcast的概念和实例分析。该文章在概念上纠正了很多开发人员对Broadcast处理中存在的严重问题,并指出这反映了开发文档存在缺陷,没有解释清楚。
    Broadcast是Android的一个很有用的概念

    2022年6月29日
  • pycharm卸载了环境变量还在怎么办_pycharm使用教程

    pycharm卸载了环境变量还在怎么办_pycharm使用教程因为之前的pycharm是社区版的,有些功能不全,所以需要重装专业版重装pycharm最大的顾虑就是之前的库能否保留以及能否删除干净1.之前的库包卸载之前找到我之前的库包所用编译器,记下路径就行注意:因为python跟pycharm是单独存在的,所以删除的pycharm并没有影响python里安装的库包2.删除正版软件删除是最简单的,找到文件所在位置,直接卸载就行这里注意两个红色箭头要全选,然后等待卸载结束就行。3.重新安装下载链接:http://www.jetbrains.com/

    2022年8月27日
  • java executeupdate_执行完executeUpdate()方法…-体系课

    java executeupdate_执行完executeUpdate()方法…-体系课如题:Servlet代码如下:packagejdbcHomeWork;importjava.io.IOException;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjavax.servlet.ServletException;importja…

    2022年10月20日
  • 寻求全站搜索功能开发思路

    寻求全站搜索功能开发思路

    2021年9月22日
  • AVProVideo视频进度条

    AVProVideo视频进度条1,新建slider并添加事件

    2022年7月3日
  • 安装LaTeX_如何正确使用

    安装LaTeX_如何正确使用使用优秀的LaTeX工具,让你写作事半功倍;MiKTex+TexStudio+JabRef

    2022年8月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号