题解正方形和长方形个数

Posted kcn999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解正方形和长方形个数相关的知识,希望对你有一定的参考价值。

题目描述

       设有一个n×m方格的棋盘(1≤m,n≤100),求出该棋盘中包含多少个正方形,多少个长方形(不包括正方形)。

       例如当n=3,m=2时正方形的个数有8个,即边长为1的正方形有6个,边长为2的正方形有2个。长方形的个数有10个,即2×1的长方形有4个;1×2的长方形有3个;3×1的长方形有2个;3×2的长方形有1个。

 

输入输出格式

输入格式

       一行,输入两个整数,n和m。

 

输出格式

       一行,输出正方形的个数与长方形的个数。

 

输入输出样例

输入样例

3 2

 

输出样例

8 10

 

题解

        其实可以手推公式,然后判断是否为正方形即可,具体看代码。

技术图片
#include<iostream>
using namespace std;
int n,m,num1,num2;
int main()
{
    cin>>n>>m;
    if(n>m) swap(n,m);
    //n<m
    for(int i=1;i<=n;i++)
    {
        num1+=(n-i+1)*(m-i+1);
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(i!=j)
            {
                num2+=(n-i+1)*(m-j+1);
            }
        }
    }
    cout<<num1<<" "<<num2;
    return 0;
}
参考程序

 

以上是关于题解正方形和长方形个数的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 221. 最大正方形 c++/java详细题解

BZOJ4558: [JLoi2016]方

N x M的方格内斜置长方形的个数

PAT乙级题库“傻瓜”题解之跟奥巴马一起编程

20200608递归测试 T2 地盘划分 题解

hdu6055(求正方形个数)