求京东c++笔试题-疯狂序列的求解公式推导原理

floor(sqrt(2*n) + 0.5);这公式怎么推导出来的
全部评论
http://bestmind.space 这上面有
点赞 回复 分享
发布于 2017-09-09 02:25
//等于i的区间 {x | i(i-1)/2 + 1 <= x <= i(i+1)/2} //推出 {i | sqrt(2x+0.25)-0.5 <= i <= sqrt(2x-1.25)+0.5 } //验算下左右的值,发现取右,所以 i = floor(sqrt(2x-1.25)+0.5);
点赞 回复 分享
发布于 2017-09-08 23:58
等差数列啊,x<n(n+1)/2
点赞 回复 分享
发布于 2017-09-08 23:19
我的理解是1+2+3+4+5+....+k=(k+1)*k/2<=n; 求满足的最大 k, 那么sqrt(2*n) > sqrt((k+1)*k) >sqrt(k*k)=k,加上0.5是考虑范围吧
点赞 回复 分享
发布于 2017-09-08 21:57

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务