南阳理工ACM之矩形的个数

                            矩形的个数

时间限制: 1000 ms  |           内存限制: 65535 KB
难度: 1
描述
在一个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)

输出
输出找到的矩形数。
样例输入
1 2
3 2
样例输出
3
18
这道题目,一看真的没有一点头绪,我做完之后才知道有公式可以直接求出。公式是:a*(a+1)*b*(b+1)/4;当然了,用公式很简单,但是,当时,我自己慢慢的推到,成就感也不是一般的有啊!可以先经行列上的循环,求出一行中有多少个矩形(1*n格式的矩形,设总量为m),然后经行每一行的循环,因为每一行都是一样的,所以可以加上第一行的矩形,但是,每行(我们设为i)增加一个矩形,就可以和(i-1)、(i-2)......等再组成一个矩形,每行增加的都是m*i个矩形。所以就可以把这道题求出来了。ps:这道题的数目较大,最好把空间开大一点,用————int64或long long
 
 
      
#include
int main()
{
	int a,b,i,t;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		long long m=0,c=0;
		for(t=1;t<=b;t++)
		{
			m+=t;
		}
		for(i=1;i<=a;i++)
		{
			c+=m*i;
		}
		printf("%lld\n",c);
	}
	return 0;
}

你可能感兴趣的:(南阳理工ACM之矩形的个数)