如何仅使用加法和减法来找出自然数的平方根?
谢谢。
[我查看了互联网,但我没有找到与此问题相关的任何内容。]
解释我的问题:我想创建一个c函数,它只接收一个自然数并返回它的平方根。
您可以说使用" sqrt"函数,但我只是想创建一个利用加法和减法运算符来创建平方根
你不必编写程序,只需编写公式即可。感谢。
更新:这个问题并不是专门针对数学而是编码。(我标记了#34; c"因为它有一些链接,但这个问题与编码无关。)
答案 0 :(得分:2)
n 2 相当于 n 第一个奇数的总和。
您可以迭代n(因此只将下一个奇数加到先前计算的总和上),直到该平方等于或超过您的数字。
k = 0
sum = 0
while sum < target:
k += 1
sum += 2k-1
if sum > target:
the target doesn't have integer root
else:
k is the square root
答案 1 :(得分:0)
我们可以使用(n+1)² = n² + 2n + 1
。
def sqrt(n):
k = 0
s = 0
while s <= n:
s = s+k+k+1
k = k+1
return k-1
print (sqrt(0)) # 0^2
print (sqrt(1)) # 1^2
print (sqrt(2)) # (1.4142135623730951...)^2
print (sqrt(144)) # 12^2
print (sqrt(169)) # 13^2
print (sqrt(196)) # 14^2
print (sqrt(255)) # 15^2
print (sqrt(1000)) # (31.622776601683793...)^2
print (sqrt(2000)) # (44.721359549995796...)^2
<强> UPD 强>
对不起,我以为你在问代码:)