1
3
在最简单的情况下(考虑到数字从LSB到MSB进行编号,第一个数字是0)并且知道旧的数字,我们可以这样做:
对于真正的问题,我们需要:
2) 那个数字是多少
您还可以使用x86中的特殊fpu指令,该指令能够在BCD中保存浮点(我不知道它有多慢)。 更新:第一步可以更快地完成,没有任何划分,使用如下二进制搜索:
|
2
2
如果你的索引开始于最低有效位,你可以这样做
但由于索引是向后的,所以字符串可能是一种方法。它也将更具可读性和可维护性。 |
3
1
P.S.ruslik的回答更加优雅:) |
4
1
你需要先弄清楚你输入的数字是多少。我可以想出两种方法,一种是循环,另一种是对数。这是循环版本。对于负输入和零输入,以及当索引超出界限时,可能也会失败,但这是一个起点。
另外,这是Python代码。像这样简单的事情的原理很容易解决,但是细节非常复杂,你真的需要迭代一下。在这种情况下,我从一个原则开始,我想减去旧的数字,然后加上新的数字;从那里得到正确的乘数。 |
5
0
如果你说的是性能的话,你必须对你的计算平台有明确的要求。 我将把数字转换成成对的十进制数字,每个数字4位。
然后我再把号码拼起来。 有些汇编程序做得很好。 |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 6 年前 |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 6 年前 |
Guillermo Gutiérrez · STR转换是如何工作的? 6 年前 |
RudziankoÅ · 合并排序数组算法 7 年前 |
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
hippietrail · 确定浮点数中前导零的数量 7 年前 |