【题解】正方形和长方形个数

题目描述

       设有一个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;
}
参考程序

猜你喜欢

转载自www.cnblogs.com/kcn999/p/10352581.html
今日推荐