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

floor(sqrt(2*n) + 0.5);这公式怎么推导出来的
全部评论
http://bestmind.space 这上面有
点赞 回复 分享
发布于 2017-09-09 02:25
我的理解是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
等差数列啊,x<n(n+1)/2
点赞 回复 分享
发布于 2017-09-08 23:19
//等于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

相关推荐

猪扒已出闸:方向不够聚焦,看不出来是想找什么方向的工作
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务