自然数变化规则:
偶数:除以2
奇数:加1或者减一
直到运算结果为1,程序终止!
例如:
7 +1 =8
8 /2 =4
4 /2 =2
2 /2 =1 结束
运算次数为4次
当然所求的次数应该是最小的!!!!
阅微客栈 » 头脑风暴
自然数按一定运算变为1的运算次数
(4 posts)-
发布于 1 年 之前 #
-
这样是不是最优的?
从末位做起,
如果为0,则除2。
如果为1,考虑倒数第2位
如果为1,则加1除2。
如果为0,则减1除2。发布于 1 年 之前 # -
我也是这样想的
但是这个不一样是最优的吧?
因为倒数第三位也有可能影响吧?
后来我想 是不是要像八皇后一样,吧所有的步骤做一遍,然后求得最少的次数。
但效率低下发布于 1 年 之前 # -
zhang 的算法对3来说就不是最优。 得稍微修改一下。从高位做, 对于第一段连续的1,如果个数>3用+1除以2,<3用-1除以2。 以后的连续1段用 zhang的策略就行
发布于 7 月 之前 #
回复
你必须 登录 后发帖。