栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

洛谷 P2241 统计方形Python题解

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

洛谷 P2241 统计方形Python题解

题解

  这道题放在了暴力枚举里面,说个实话为什么感觉就是数学问题呢?如果这道题要会做的话必须知道两个结论:
1. 对于一个长为n宽为m的格子来说,格子的矩形数为(长+1)*长/2)*((宽+1)*宽/2)。
2. 对于不同边长来说正方形的个数为(n-i)*(m-i)。

主要思路就是先求出矩形数,再求出正方形数,那么矩形数-正方形数=长方形数即可

n, m = map(int, input().split())
z = 0
# ((长+1)*长/2)*((宽+1)*宽/2)  就是求长*宽个格子里面多少矩形数  这个是数学公式
al = int(((n + 1) * n / 2) * ((m + 1) * m / 2))  # 这个地方不懂可以记住 所有的矩形数(长方形+正方形)
for i in range(0, min(n, m)):  # 找最小的边  这个地方的0其实就是边长为1的正方形 不就n*m吗  边长为2(假如n为2m为3)自己画一画 就是2个 就是(n - 1) * (m - 1)
    z += (n - i) * (m - i)  # 求正方形  也可以当成一个公式 
print(z, al - z)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号