找到一个 n-interesting 多边形的面积

新手上路,请多包涵

考虑:

在此处输入图像描述

我试图找到 n 个有趣的多边形的面积,其中 (n=1, A=1, n=2, A=5, n=3, A=13, n=4, A=25, 等等上)。所以n-interesting polygon的公式是(n-1)-interesting polygon+(n-1)*4的面积。运行程序时,隐藏测试显示代码错误。我的代码有什么问题?

 def shapeArea(n):
    if n == 0:
        return 0
    if n == 1:
        return 1
    for i in range(2, n+1):
        return (shapeArea(n-1) + (n-1)*4)

原文由 M-M 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 621
2 个回答

我找到了没有递归的公式。测试顺利通过。

 def shapeArea(n):
    if n>=10**4 or n<1:
        return False

    return (n**2+(n-1)**2)

原文由 M-M 发布,翻译遵循 CC BY-SA 3.0 许可协议

由于已经有代码示例,我将解释为什么公式是 n * n + (n-1) * (n-1)

  1. 您需要对角线查看图表
  2. 你会注意到边总是 n
  3. 例如,如果 n=4,则形状每边有 4 个正方形,因此 n * n
  4. 但是,如果您注意到,n * n 并不占所有方块。一旦你占了之间有正方形
  5. 拿走你用n * n计算的正方形,你会注意到现在形状的边是n-1
  6. 因此,您考虑到中间的正方形,公式为 n * n + (n-1) * (n-1)
  7. 例子:如果n = 4,那么外面的正方形是4 * 4 = 16。然后把你刚刚计算的面积去掉,里面的正方形是3 * 3 = 9。加起来就是25。

原文由 ProFire 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题