编程中的数字平方

Ozz*_*zzy 6 math

我知道这可能是一个非常简单的问题,但我如何在编程语言中做n 2这样的事情呢?

是n*n吗?或者还有另一种方式吗?

Jus*_*ier 11

n * n 是最简单的方法.

对于支持取幂运算符的语言(**在本例中),您也可以这样做n ** 2

否则,您可以使用数学库来调用诸如此类的函数,pow(n, 2)但这对于简单地对数字进行平方来说可能是过度的.


Mar*_*off 5

n * n将几乎总是工作 - 它不会工作的几个案例是前缀语言(Lisp,Scheme和co.)或后缀语言(Forth,Factor,bc,dc); 但显然你可以写(* n n)n n*分别.

当出现溢出情况时它也会失败:

#include <limits.h>
#include <stdio.h>
int main()
{
    volatile int x = INT_MAX;
    printf("INT_MAX squared: %d\n", x * x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我把volatile量词放在那里只是为了指出这可以编译-Wall而不引发任何警告,但在我的32位计算机上,这表示INT_MAX平方为1.

根据语言的不同,您可能有一个power函数,例如pow(n, 2)在Cmath.pow(n, 2)Python中......由于这些power函数转换为浮点数,因此在可能出现溢出的情况下它们更有用.