求一个矩阵M*N中的矩形个数?

YangQiuming0818 2009-05-12 10:24:46
已知一个矩阵M*N,求解这个矩阵中包含的矩形(包括正方形)的个数?请大家发挥发挥。
...全文
1406 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangle5288 2009-10-20
  • 打赏
  • 举报
回复
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
//-------------------------------
int shu(int M,int N){
int counter=0;
if(M>1&&N>1){
return M*(M-1)*N*(N-1)/4;
}
else
return false;
}
//------------main()-------------
int main(){
cd:int x,y,v;
cout<<"请输入m:";
cin>>x;
cout<<"请输入n:";
cin>>y;
//v=jisuan(x,y);
v=shu(x,y);
if(v<1)
cout<<"不能构成矩形!"<<endl;
else
cout<<x<<"*"<<y<<"的矩阵中有"<<v<<"个矩形"<<endl;
char c;
cout<<"是否继续?"<<"(Y || n)"<<endl;
cin>>c;
if(c=='y')
goto cd;
else
system("pause");
return 0;
}
zhaoweiting0609 2009-05-12
  • 打赏
  • 举报
回复
mark
qldsrx 2009-05-12
  • 打赏
  • 举报
回复
吃饭回来了。
我是不是可以理解为矩阵M*N只得是矩阵的点数分别是M和N,那么代码如下:

//m,n必须大于1,不然无法构成矩形
int getRect(int m, int n)
{
int result = 0;
if (m > 1 && n > 1)
{
result = m * (m - 1) / 2 * (n * (n - 1) / 2);
}
return result;
}

这个函数返回的就是矩阵中包含的矩形(包括正方形)的个数。
qldsrx 2009-05-12
  • 打赏
  • 举报
回复
简单,一个排列组合的问题,不过需要想想,先去吃饭。(数学我可是很优秀的)
llsen 2009-05-12
  • 打赏
  • 举报
回复
杜绝0回复

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧