1997年分区联赛普级组之一 统计

本文介绍了一种计算任意尺寸棋盘中正方形与长方形数量的算法,并提供了具体的实现代码示例。对于n*m的棋盘,文章详细列举了不同尺寸的正方形和长方形的数量,并给出了计算公式。

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

Description

设有一个n*m方格的棋盘(1≤m,n≤100)。 
  求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。 
例如:当n=2,m=3时 

1997年分区联赛普级组之一 <wbr>统计

  正方形的个数有8个;即边长为1的正方形有6个; 
边长为2的正方形有2个。 

长方形的个数有10个; 
即2*1的长方形有4个;1997年分区联赛普级组之一 <wbr>统计 

1*2的长方形有3个;1997年分区联赛普级组之一 <wbr>统计 

3*1的长方形有2个;1997年分区联赛普级组之一 <wbr>统计 

3*2的长方形有1个。1997年分区联赛普级组之一 <wbr>统计 

 

Input

n和m

Output

正方形的个数与长方形的个数

Sample Input

 

2  3 

 

Sample Output

 

8 10


解题思路:边长为min{n,m}的正方形个数(s1)为(m-min{n,m}+1*(n-min{n,m}+1),长方形和正方形个数和(s)为[(1+n)*(1+m)*n*m]/4,长宽不等长方形个数(s2)为s-s1


程序:
var
  m,n,m1,n1,s1,s2:longint;
begin
  readln(m,n);
  m1:=m;
  n1:=n;
  s1:=m1*n1;
  while (m1<>0) and (n1<>0) do
    begin
      dec(m1);
      dec(n1);
      s1:=s1+m1*n1;
    end;
  s2:=((m+1)*(n+1)*m*n) div 4-s1;
  writeln(s1,' ',s2);
end.


版权属于: Chris
原文地址: http://blog.sina.com.cn/s/blog_83ac6af80102v0i6.html
转载时必须以链接形式注明原始出处及本声明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值