京东疯狂序列 为什么要四舍五入
大家都用ceil(根号(0.25+2*n)-0.5来做,我的想法是用round(sqrt(2*n))来做
没四舍五入的直接用返回sqrt(2*n)只能通过80%
所以返回sqrt(n) 是直接截掉小数部分的,要处理第二种情况,要四舍五入
实现方法为 round(sqrt(n)) 或者 int (sqrt(n)+0.5) ,这两种都能得到m,而不是有时候得到m-1
Ps: double 到int会直接截去小数部分
此题的n最大为10^18, sqrt有几个重载函数 ,有的可以存这么大的数,long long 也是64位
long long 的最大值也可以参考此网站
疯狂序列题回忆:1 2 2 3 3 3 4 4 4 4 . . . . .这样的序列,求第n个数对应序列中的那个数?n的范围为 [1, 1018]
#京东##C++工程师#