使用Python查找网格中正方形数量的程序

使用Python查找网格中正方形数量的程序

假设我们有两个值p和q,我们必须找出从一个具有p行和q列的网格中平均放置点可以生成的唯一正方形的数量。如果答案非常大,则返回结果mod 10^9 + 7。在这个问题中,一个正方形是一组形成正方形的四个点的四个顶点。正方形的四边必须具有相同的长度,不一定需要与网格的轴对齐。

所以,如果输入如下:p = 4,q = 4,那么输出将是20。

为了解决这个问题,我们将按照以下步骤进行 –

  • 对于i从r和c的最小值的范围,做以下操作 –
    • ans : = ans + (r – i) * (c – i) * i

    • 返回ans mod(10 ^ 9 + 7)

示例

让我们看一下以下实现以更好的了解 –

class Solution:
   def solve(self, r, c):
      ans = 0
      for i in range(min(r, c)):
         ans += (r - i) * (c - i) * i
      return ans % (10 ** 9 + 7)
ob = Solution()
print(ob.solve(4,4))

输入

p = 4
q = 4

输出

20

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程