如何用C语言来计算一个矩形中包含多少个小矩形

forexample在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形... for example
在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形。
给出矩阵的长宽A,B,计算可以从中找到多少个矩形。
展开
 我来答
tattackor
推荐于2018-05-11 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:896万
展开全部

1、在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形。给出矩阵的长宽A,B,计算可以从中找到多少个矩形。

这个题目的解决方法就是找到递推式,然后用迭代找到答案。

2、例程:

#include <stdio.h>
/*计算一个维度上容纳的边数*/
int GetSubBoundCount(int l,int subl)
{
    int count = l - subl + 1;
    return count > 0 ? count : 0;
}
/*计算可容纳指定尺寸的矩形数*/
int GetSubRectCount(int w,int h,int subw,int subh)
{
    return GetSubBoundCount(w,subw) * GetSubBoundCount(h,subh);
}
int main()
{
    int w,h;
    scanf("%d%d",&w,&h);
    int count = 0;
    int x,y;
    for(x=1;x<=w;++x)
        for(y=1;y<=h;++y)
            count += GetSubRectCount(w,h,x,y);
    printf("%d\n",count);
    return 0;
}
engineerjia
推荐于2016-06-15 · TA获得超过199个赞
知道答主
回答量:136
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>

/*计算一个维度上容纳的边数*/
int GetSubBoundCount(int l,int subl)
{
int count = l - subl + 1;
return count > 0 ? count : 0;
}

/*计算可容纳指定尺寸的矩形数*/
int GetSubRectCount(int w,int h,int subw,int subh)
{
return GetSubBoundCount(w,subw) * GetSubBoundCount(h,subh);
}

int main()
{
int w,h;
scanf("%d%d",&w,&h);
int count = 0;
int x,y;
for(x=1;x<=w;++x)
for(y=1;y<=h;++y)
count += GetSubRectCount(w,h,x,y);
printf("%d\n",count);
return 0;
}

使用示例:
输入
3
2
输出
18
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式