我无法从 java 中的 n 个多边形获取区域

Im not able to get area from n polygon in java

如果你能给我解释一下,不仅解决了,那真是不可思议。

第一:这是我老师给我的一个练习,它对我的​​成绩确实没有任何价值,但我正在努力解决它,但我在做测试时做不到说

输入: 人数:3 输出: 10 预期输出: 13 控制台输出: 空

这里是问题:

下面我们将定义一个n-interesting多边形。您的任务是找到给定 n 的多边形面积。

一个 1-interesting 多边形只是一个边长为 1 的正方形。n-interesting 多边形是通过取 n - 1-interesting 多边形并将 1-interesting 多边形并排附加到其边缘而获得的.你可以在下图中看到1-、2-、3-和4-有趣的多边形。

首先,您必须找到一种数学方法来找到 n-interesting 多边形的面积,而不是转置到代码中。一种方法是考虑给定 n-polygon 的 Area 函数,例如
Area(n)= (2n-1)^2-2*(n-1)(n)
其中 (2n-1)^2 是在 n-int 边长为 n+n-1 的多边形上构建的正方形的面积(蓝色方块加白色方块),比我只减去白色方块的面积(一个这个区域的面积是 (n-1)n/2,我必须将它与 4 个边相乘,所以最后我们有 2*(n-1)n )

你可以用最简单的方法来做。 我计算了一下,发现对于:

  • n = 1 => 1
  • n = 2 => 5
  • n = 3 => 13
  • n = 4 => 25
  • n = 5 => 41
  • n = 6 => 61 所以当我计算每个数字的平方时:
  • n = 1 => 1 -> 1*1 = 1
  • n = 2 => 5 -> 2*2 = 4, 5-4 = 1
  • n = 3 => 13 -> 3*3 = 9, 13-9=4
  • n = 4 => 25 -> 4*4 = 16, 25-16=9
  • n = 5 => 41 -> 5*5 = 25, 41-25=16
  • n = 6 => 61 -> 6*6 = 36, 61-36=25

然后我想出了公式: n^2 + (n-1)*(n-1)