如何在三角形数列中找到所选数字的行号?

Joh*_* P. 2 java if-statement

我试图在其中找到所选方块中的行号:

在此输入图像描述

例如,如果我选择,getRow(17)我会得到answer = 6. 我什至不知道从哪里开始。有人能指出我正确的方向吗?

class RowShelf{
   public static void main(String[] args) {
      getRow(24); // ans = 7
      getRow(17); // ans = 6
   }

   public static int getRow(int sq){

  }
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*hid 6

对于三角形数 n,其中 r 是行号:

n = r(r+1) / 2
=> r^2 + r - 2n = 0
Run Code Online (Sandbox Code Playgroud)

直接的数学表达式为:

r = (sqrt(8n+1)-1) / 2
Run Code Online (Sandbox Code Playgroud)

为此进行编码。