每日一题“棋盘方格”!

1.题目:

2.思路:

把大矩形放到平面坐标上,计算每一个小矩形的长和宽,进行比较;

3.图像理解:

4.代码:

#include<iostream>
using namespace std;

int n,m;
int sumC,sumZ;//sumC记录长方形个数;sumZ记录正方形个数 
int a[100][100],b[100][100];//a[100][100]记录长度,b[100][100]记录宽度; 

int main()
{
	cin>>n>>m;
	//先给矩形的每个顶点建立坐标;长为0到n,宽为0到m;然后计算每个矩形长和宽;进行比较。 
	for(int i=n;i>0;i--){
		for(int j=i-1;j>=0;j--){
			a[i][j]=i-j;//计算i点到j点的矩形的长; 
			for(int k=m;k>0;k--){
				for(int l=k-1;l>=0;l--){
					b[k][l]=k-l;//计算k点到l点的矩形的宽 
					if(a[i][j]==b[k][l]){//如果长等于宽,正方形个数加1; 
						sumZ++;
					}
					else{//否则长方形个数加1; 
						sumC++;	
					}
				}
			}
		}
	}
	cout<<sumZ<<' '<<sumC;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值