棋盘格数

本文提供了一种算法来计算任意大小的棋盘格中所有可能的正方形和长方形的数量,并详细解释了计算这些形状的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

【例3】棋盘格数
设有一个N*M方格的棋盘( l≤ N≤100,1≤M≤100)。求出该棋盘中包含有多少个正方形、多少个长方形(不包括正方形)。
例如:当 N=2, M=3时:
正方形的个数有8个:即边长为1的正方形有6个;边长为2的正方形有2个。
长方形的个数有10个:即2*1的长方形有4个:1*2的长方形有3个:3*1的长方形有2个:3*2的长方形有1个:
程序要求:输入:N,M
输出:正方形的个数与长方形的个数
如上例:输入:2 3
输出:8 10
【算法分析】
1.计算正方形的个数s1
边长为1的正方形个数为n*m
边长为2的正方形个数为(n-1)*(m-1)
边长为3的正方形个数为(n-2)*(m-2)
…………
边长为min{n,m}的正方形个数为(m-min{n,m}+1)*(n-min{n,m}+1)
根据加法原理得出

 

2.长方形和正方形的个数之和s
宽为1的长方形和正方形有m个,宽为2的长方形和正方形有m-1个,┉┉,宽为m的长方形和正方形有1个;
长为1的长方形和正方形有n个,长为2的长方形和正方形有n-1个,┉┉,长为n的长方形和正方形有1个;
根据乘法原理

 


3.长宽不等的长方形个数s2
显然,s2=s-s1

 

转载于:https://www.cnblogs.com/qilinart/articles/4995707.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值