博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2058 The sum problem
阅读量:4697 次
发布时间:2019-06-09

本文共 477 字,大约阅读时间需要 1 分钟。

//这种题用暴力肯定会超时,题目的突破点就是相邻的值相差值是相等的,利用等差数列公式sum=a1*n+(n-1)*n/2

//知道到a1=1时,n是最大的,也就是sqrt(2*m),从最大的开始,每次减1,来求a1的值,a1=(sum/n)-(n-1)/2, 在把a1和n代进去,看是否相等

#include"stdio.h"#include"math.h"int main(){	int n,m,a1,nn;	while(scanf("%d%d",&n,&m)!=EOF&&(n||m))	{		nn=(int)sqrt(2.0*m);		while(nn)		{			a1=m/nn-(nn-1)/2;			if(a1*nn+(nn-1)*nn/2==m)				printf("[%d,%d]\n",a1,nn+a1-1);			nn--;		}		printf("\n");	}	return 0;}

转载于:https://www.cnblogs.com/yyf573462811/archive/2012/08/03/6365255.html

你可能感兴趣的文章
php.ini详解(转)
查看>>
[转]基于Python的接口测试框架
查看>>
"ORA-00942: 表或视图不存在 "的原因和解决方法[转]
查看>>
PeekMessage、GetMessage的区别
查看>>
磁盘使用率达到100%
查看>>
linux跳过root密码登陆
查看>>
mini2440 U-boot 编译
查看>>
学习ThreadLocal
查看>>
在 Visual Studio 调试器中指定符号 (.pdb) 和源文件
查看>>
直接量
查看>>
leetcode 115. 不同的子序列(Distinct Subsequences)
查看>>
三元表达式
查看>>
Oauth支持的5类 grant_type 及说明
查看>>
客户端第一天学习的相关知识
查看>>
LeetCode - Same Tree
查看>>
Python dict get items pop update
查看>>
[置顶] 程序员必知(二):位图(bitmap)
查看>>
130242014036-(2)-体验敏捷开发
查看>>
constexpr
查看>>
Nginx 流量和连接数限制
查看>>