如果你能向我解释,不仅仅是解决问题,那真的太棒了。 首先:这是我老师给我的一个练习,它确实对我的成绩没有任何价值,但我正在尝试解决它,然而当我运行测试时,会出现以下提示: 输入: n: 3 输出: 10 期望输出: 13 控制台输出: Empty 下面是问题: 在下面,我们将定义一个n有趣的多边形。您的任务是查找给定n的多边形的面积。 一个1有趣的多边形只是一条边长为1的正方形。通过将1有趣的多边形附加到其边缘并并排放置,可以得到n有趣的多边形。您可以在下面的图片中看到1、2、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)
首先,您需要找到一种数学方法来计算您的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)
我用了比其他人更基本的方法。 我发现中间上下的行遵循相同的公式(2n-1)来计算面积。 顶部和底部是镜像的。所以,我只循环了高度的一半。每次循环时,我将(2n-1)添加到总面积中,然后从n中减去1。 循环结束后,我将面积乘以2,得到底部/顶部的面积。然后将其与中间区域结合起来。 希望这有所帮助!
n
边形的工作原理,对我来说,这看起来就像一个数组,所以我可能会考虑如何创建一个二维数组,使我能够制作一个n
边形,然后,我会考虑如何“填充”该数组,这将为您提供一些关于如何确定实际大小的概念。 - MadProgrammer