1922: 矩形的个数

题目描述

在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形。

给出A,B,计算可以从中找到多少个矩形。

输入

本题有多组输入数据(<10000),你必须处理到EOF为止.

输入2个整数A,B(1<=A,B<=1000)

输出

输出找到的矩形数。

样例输入

<span style="color:#333333"><span style="color:black">1 2
3 2
</span></span>

样例输出

<span style="color:#333333"><span style="color:black">3
18</span></span>

提示

 

来源

nyoj数学 nyoj语言入门 

 

题目智能推荐

1852 2093 1867 1940 1854 1851 


代码:

一:这是一道规律题,要想找到矩形的总个数并不容易,但是你可以求出一行和一列各有多少个矩形,两者相乘就是矩形的总数。

eg:

3*2的矩形ABCD。

宽AC:以1cm作为一个基本线段,那么AC上共有3条线段。

长CD:以1cm作为一个基本线段,那么CD上共有6条线段。

长方形个数=长边线段段数*宽边线段段数 (线段段数=基本点*基本线段/2)=3*6=18个矩形。
 

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
   long long n,m,sum;
   while(cin>>n>>m)
   {
       sum=0;//重置为0
       for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            sum+=i*j;
        }
        cout<<sum<<endl;
   }
  return 0;
}

二:直接套公式,总个数为m*n*(m+1)*(n+1)/4。emmmm,原理不太懂。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
	long long m,n;
	while(scanf("%lld%lld",&m,&n)!=EOF)
	{
		printf("%lld\n",m*n*(m+1)*(n+1)/4);
	}
	return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值