无法在Java中获取n边形的面积

3

如果你能向我解释,不仅仅是解决问题,那真的太棒了。

首先:这是我老师给我的一个练习,它确实对我的成绩没有任何价值,但我正在尝试解决它,然而当我运行测试时,会出现以下提示:

输入: n: 3 输出: 10 期望输出: 13 控制台输出: Empty

下面是问题:

在下面,我们将定义一个n有趣的多边形。您的任务是查找给定n的多边形的面积。

一个1有趣的多边形只是一条边长为1的正方形。通过将1有趣的多边形附加到其边缘并并排放置,可以得到n有趣的多边形。您可以在下面的图片中看到1、2、3和4有趣的多边形。enter image description here


1
那就不要把它添加到你的问题中——提供的大部分内容都提供了一些关于如何解决问题的想法。例如,你提供了一个网格,它直观地展示了一个 n 边形的工作原理,对我来说,这看起来就像一个数组,所以我可能会考虑如何创建一个二维数组,使我能够制作一个 n 边形,然后,我会考虑如何“填充”该数组,这将为您提供一些关于如何确定实际大小的概念。 - MadProgrammer
1
话虽如此,很可能存在一个简洁明了的数学公式可以使用,但我可能只有在经历创作过程后才能看到它。 - MadProgrammer
2
我解决了,我之前的操作有误,但是我使用以下代码解决了问题:return (n * n) + ((n-1) * (n-1));无论如何,非常感谢。 - Csanchez
1
然后请随意发布答案!非常努力!下次,包括您的可运行代码示例 ;) - MadProgrammer
3个回答

4

您可以用最简单的方法实现它。 我进行了计算,得出以下结果:

  • 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)


3
首先,您需要找到一种数学方法来计算您的n-interesting多边形的面积,然后将其转换为代码。一种方法是考虑给定n-polygon的面积函数,例如
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)

0

我用了比其他人更基本的方法。

我发现中间上下的行遵循相同的公式(2n-1)来计算面积。

顶部和底部是镜像的。所以,我只循环了高度的一半。每次循环时,我将(2n-1)添加到总面积中,然后从n中减去1。

循环结束后,我将面积乘以2,得到底部/顶部的面积。然后将其与中间区域结合起来。

希望这有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接