【发布时间】:2014-04-01 09:16:16
【问题描述】:
大家早上好,今天我展示了一种计算整数平方根的巧妙方法。虽然它确实有效,但我不明白它为什么有效。 这是代码:
mov output, 0
mov eax, input
mov ebx, 1
loop:
sub eax, ebx
cmp eax, 0
jl end
inc output
add ebx, 2
jmp loop
end:
现在请注意我的问题,我知道它是如何工作的:它通过奇数(1、3、5、7...)减少输入,如果输入仍然 >=0,它会将输出增加1并重复该过程,否则输出为输入的整数平方根。我不知道这个算法起作用的原因,请问有没有人知道。
【问题讨论】:
-
注意1 = 1, 1 + 3 = 4, 1 + 3 + 5 = 9...一般前n个奇数之和为n^2。这是很常见的系列之一mathoverflow.net/questions/4348/…
标签: assembly square-root