在这个问题中,我们将看到如何获得前 n 个自然数的平方和。这里我们使用一个 for 循环,从 1 运行到 n。在每一步中,我们计算该项的平方,然后将其添加到总和中。此程序需要 O(n) 时间才能完成。但是,如果我们希望在 O(1) 或常数时间内解决此问题,我们可以使用以下级数公式:算法squareNNatural(n)begin sum := 0 for i in range 1 to n, do sum := sum + i^2 done return ... 阅读更多
这里我们将看到如何获得两个以上数字的最大公约数。求两个数字的最大公约数很容易。当我们想要找到两个以上数字的最大公约数时,我们必须遵循最大公约数的结合律。例如,如果我们想要找到 {w, x, y, z} 的最大公约数,那么它将是 {gcd(w, x), y, z},然后是 {gcd(gcd(w, x), y), z},最后是 {gcd(gcd(gcd(w, x), y), z)}。使用数组可以很容易地做到这一点。算法gcd(a, b)begin if a is 0, then return b end if return gcd(b ... 阅读更多
这里我们将看到如何获得两个数字的公约数的数量。我们不会找到所有公约数,而是计算有多少个公约数。如果两个数字是 12 和 24,那么公约数是 1、2、3、4、6、12。因此有 6 个公约数,所以答案将是 6。算法countCommonDivisor(a, b)begin count := 0 gcd := a 和 b 的最大公约数 for i := 1 to square root of gcd, do if gcd is divisible by 0, then ... 阅读更多