m*n棋盘中长方形正方形的个数

对于一个nm的棋盘,共有矩形 (m+m-1+m-2+…+1)(n+n-1+n-2+…+1)
即[m*(m+1)/2][n(n+1)/2]个,这一步可用前一个式子循环加,也可用后一个式子直接算;
共有正方形(假设m>n) mn+(m-1)(n-1)+…+(m-n+1)*1 个,这步用循环做就行;
你所说的长方形就用 矩形数 减去 正方形数 就行了

#include<iostream>
using namespace std;
int main()
{
    int m,n;
    cin >> m >> n;
    int t=n;
    int res1=0;
    int res2=(m*(m+1)/2)*(n*(n+1)/2);
    for(int i=0;i<t;i++)
    {
        res1+=m*n;
        m--;
        n--;
    }
    cout << res1 << " " << res2-res1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值