math - 如何找到给定行中的最小数字?

标签 math recursion conditional

我需要在任何行中找到第一个数字,如下所示:(http://puu.sh/rbVEJ/10a2086c82.png)。我只将它用于rowStart(6);但仅此而已。有人可以帮忙吗?

class ShelfRows{

  public static void main (String[] args){
    rowStart(6); // ans = 16
    rowStart(10); // ans = 46

}

  public static int rowStart(int row){
    int n = row - 1;
    if(n == 0) return 1;
    return n*2 + rowStart(n);

  }
}

最佳答案

行的起始编号是下面所有行的平方数。可以很容易地看出它们是三角形组织的。三角形占用的空间是矩形占用的空间的一半。您的示例的确切公式为:

public static int rowStart(int row){
  return (row * (row - 1))/2;
}
row - 1row是对角线正方形。与其“分割”(以创建合适的三角形),不如将正方形的row/2添加到平滑三角形。 (希望可以理解...)。

关于math - 如何找到给定行中的最小数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39507845/

相关文章:

python math.log 在较大的 int 下输出不准确?

python - 将 x 浮点舍入为 y,并减少尾数(有效) float

linux - 条件 eax != 0 和 edx == 0?

clojure - 在重复时停止和拆分生成的序列 - clojure

python - Python 中首选 `if x:` 或 `if x != 0:` 中的哪一个?

algorithm - 如何通过网络中的节点生成随机路径

Java:合取不等式的最少运算次数?

python - 了解递归函数中总值的存储位置 - Python

types - 这种模式似乎很详尽,但我仍然收到警告

c++ - 我怎样才能让这个递归链表反向工作?