Math 仅使用加法和减法求自然数平方根的公式

Math 仅使用加法和减法求自然数平方根的公式,math,square-root,Math,Square Root,如何仅使用加法和减法求出自然数的平方根? 谢谢。 [我已在互联网上查找过,但未找到任何与此问题相关的内容。] 对我的问题的解释:我想创建一个c函数,它只接收一个自然数并返回它的平方根。 您可能会说使用“sqrt”函数,但我刚刚想到创建一个函数,它将使用加法和减法运算符来创建平方根。 您不必编写程序,只需编写公式即可。谢谢。 更新:这个问题不是专门关于编码的,而是关于数学的。(我标记了“c”,因为它有一些链接,但这个问题不是关于编码的。)n2相当于n个前奇数的和 您可以在n上迭代(因此只将下一个奇

如何仅使用加法和减法求出自然数的平方根?
谢谢。
[我已在互联网上查找过,但未找到任何与此问题相关的内容。]
对我的问题的解释:我想创建一个c函数,它只接收一个自然数并返回它的平方根。
您可能会说使用“sqrt”函数,但我刚刚想到创建一个函数,它将使用加法和减法运算符来创建平方根。
您不必编写程序,只需编写公式即可。谢谢。

更新:这个问题不是专门关于编码的,而是关于数学的。(我标记了“c”,因为它有一些链接,但这个问题不是关于编码的。)n2相当于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
k=0
总和=0
而sum目标:
目标没有整数根
其他:
k是平方根

我们可以使用这样一个事实,即
(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
def sqrt(n):
k=0
s=0

我们能用乘法和除法吗?最好不要用。但是,我愿意看到乘法和除法的公式@Mitchel0022您希望结果是整数还是双精度?@DavidRTribble请查看更新。谢谢。我投票结束这个问题,因为这个问题不是专门关于编码的,而是关于数学的。他想要平方根,而不是平方。@zch:这就是为什么我不应该在晚上发表这样的文章。我以不同的方式重复使用了我的答案。@GaousMuhammadSaklaen:一般来说,平方根是使用迭代方法计算的,从原始的矩形平方法到更有趣的方法。我认为不存在不涉及迭代的公式。它是否更适合math.stackexchange.com?他们可能会证明它不存在,或者提供这样做的方法。@GaousMuhammadSaklaen的人对你投了反对票,因为这个问题与堆栈溢出无关,这里我们主要讨论的是代码,而不是数学(除非数学是编码问题的一个重要部分)。没关系。我不需要密码。我只需要一个公式来求平方根。@GaousMuhammadSaklaen我想这可能很复杂。这里有一些方法,但大多数都是算法。除了一些粗略的估计。谢谢你评论这个链接。但是,你可以理解,这不是我问的问题@里卡斯蒂洛夫。