以下是引用墨清扬在2012-4-16 12:59:24的发言:
这样子逐个计算跟b版的差不多,遇到大量数据的话会很慢的,有没有更优的算法呢?
我给你这个代码和结果截图,是专门告诉你负数的左边全部是1,警惕对带符号整数作右移位操作,而不是要讲求什么效率。对32位整数而言,每个循环只是32次,而在当代计算机环境中,循环千万次所耗费的时间是多少,我不知道你的数据量大到哪去至于影响效率。有直接的代码不写,像这类右移位暗藏的隐患,谅你也意识不到。何况在要考虑舍弃前导0的时候,别的巧妙方法似乎也不会有。
有什么整数数据类型储存的位数过亿位呀?如果你有过亿的整数需要处理,处理这些整数本身就已经足够耗费时间,展开8倍也不过是线性常量扩展,吃得起鸡还打算省酱料钱?
[
本帖最后由 TonyDeng 于 2012-4-16 13:18 编辑 ]