想让一个数拆成 y=2^n1+2^n2+……,这个算法实现心得
摘要:
最开始,我尝试着用乘方来试探,比如用Math.Pow从0开始一直乘方下去,并加其和,直到小于y为止,可是这是个很荒谬的设计,结果当然有问题。
后来与各同行们探讨,有的建议递归,也有建议用数组,其实给我眼睛一亮的建议就是二进制。比如8=2^3,9=2^3+2^0,其实就是转换二进制的过程,8=1000,9=1001。这令我想到了当时学校的数学知识,这就是求得这个算法的最佳解决方案。
阅读全文
posted @ 2009-03-04 11:22 智艾悦 阅读(1659) 评论(11) 推荐(0) 编辑