1. 程式人生 > >【題解】正方形和長方形個數

【題解】正方形和長方形個數

out name for 判斷 pla closed lose 輸入輸出格式 bsp

題目描述

設有一個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; }
參考程序

【題解】正方形和長方形個數