返回信息流为什么要强转int
这是一条镜像帖。来源:北邮人论坛 / java / #58404同步于 2018/1/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
Re: [求助] Java long类型可以无损转换成int类型么
Mmagicc
2018/1/11镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
其实并没有运用到什么经典算法
两种运算 +1 和 *2 将0变到某一个值肯定是尽可能的*2
因为是从0开始
首先 +1
然后计算log 2底n 看看最多可以乘几回2 起个名字叫multiTimes
然后计算n- 2的multiTimes次方 这是乘2后需要+1的次数 起个名字叫addTimes
所以最后总的次数就是 1(这是最开始的1) + multiTimes + addTimes 就可以了
我也是今天刚做的 有不对的地方 请指正[em12]
【 在 xxxxzr 的大作中提到: 】
: 话说lz,算法思路是怎么想的。。
我也是这么想的。。之前笔试做过类似的,我以为这种题会有什么野路子方法。。
【 在 z4290599601 的大作中提到: 】
: 其实并没有运用到什么经典算法
: 两种运算 +1 和 *2 将0变到某一个值肯定是尽可能的*2
: 因为是从0开始
: ...................
我总觉得这个思路有些不对 后来我又想了想发现
不应该是无脑乘2, 应该是找到一个平衡点
比如1023按照我之前说的那个方法乘到512以后就全是+1 这样的话大概522次吧
但是如果比如(并不是最优) 加1加到25 再乘5次2到800之后再不断加1 这样粗略算一下应该是二百多次。
【 在 xxxxzr 的大作中提到: 】
: 我也是这么想的。。之前笔试做过类似的,我以为这种题会有什么野路子方法。。
返回值直接强转int不会丢失数据,返回值不可能超过int的范围
【 在 z4290599601 的大作中提到: 】
: 因为他要求的返回值是int 我也很纳闷 不知道会不会有什么黑科技