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

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

 

【题意】给出n 和m  , 输出 从1。。。n 的n个数字中  相加为m的子区间段

【思路】这里就是一个等差序列 用公式 sn=a1*n + (n-1)*n/2  已知sn枚举长度就可以算出 a1了 式子变形算出的a1是整数就可以直接输出结果了

 

在这里我貌似想多了 因为算出的结果是一个double型 直接强制类型转化为int型 要是 1.999999  不就转化为了 1 而不是2了 所以这里我又分了两种情况

考虑 但是提交上去时有一个地方写错了 使得没有进入第二个分支的情况 这样也ac了 

难道这些都不用考虑的吗

 

记录几个函数的 用法 (虽然这里没用到)

(x)返回不小于x的最小整数值(然后转换为double型)。
(x)返回不大于x的最大整数值。
(x)返回x的四舍五入整数值。
 
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 // 9 int main()10 {11 int i,j,m,n;12 while(scanf("%d%d",&n,&m)!=EOF)13 {14 if(m==0&&n==0) //没有结束条件 超时一次 15 break;16 int t;17 t=sqrt((double)(2*m)); //忘记强制类型转化为double ce一次 // 输出多余的测试数据wa 一次 桑心啊。。。。18 for(i=t; i>=1; i--)19 {20 double temp=(double)(2*m+i-i*i)/(double)(2*i);21 int temp1=temp;22 if(fabs(temp-(double)temp1)<0.00001)23 {24 if(temp1*i*2-i+i*i==2*m)25 printf("[%d,%d]\n",temp1,temp1+i-1);26 }27 }28 printf("\n");29 }30 return 0;31 }

 

转载于:https://www.cnblogs.com/assult/p/3611727.html

你可能感兴趣的文章
Excel导数据到数据库
查看>>
zz 悲催的程序员,以及程序员的悲催
查看>>
Flv.js
查看>>
Java工程师成神之路
查看>>
线程池ThreadPoolExecutor整理
查看>>
如何将离线的PIP安装包快速安装好
查看>>
应对通过代理攻击服务器的方法
查看>>
TIPSO--基于JQUERY的消息提示框插件,用起来蛮顺手
查看>>
散列表(哈希表)
查看>>
Linux基础命令---显示域名ypdomainname
查看>>
Rails学习笔记(1)-Ubuntu12.04下的环境配置
查看>>
LeetCode - Remove Duplicates from Sorted Array
查看>>
object.__getattr__(self, name) 、object.__setattr__(self, name, value)
查看>>
环境光
查看>>
ExtJS基础篇
查看>>
Javassist字节码强化
查看>>
把普通函数指针,变成对象方法指针
查看>>
jax-ws开发接口传参数
查看>>
IIS 6.0、IIS 7.0/ 7.5 配置HTTP压缩的步骤
查看>>
【JZOJ4934】【NOIP2017GDKOI模拟1.12】a
查看>>