矩形数

题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84562#problem/N

题意:

       多组案例,每组案例给定一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形。

       输入:第一行输入一个t, 表示有t组数据,然后每行输入n,m,分别表示网格的高和宽 ( n < 100 , m < 100)。

       输出:每行输出网格中有多少个矩形。

案例:

       Sample Input

       2

       1 2

       2 4

       Sample Output

       3

       30

分析:

       找出规律,单行中由一个网格组成的矩形有m个,由2个网格组成的矩形有m-1个,由3个网格组成的矩形有m-2个,依此类推,单行可构成的矩形个数有(m+(m-1)+(m-2)+...+1)个,即(m*m+m)/2个,同理,单列可看成单行有(n*n+n)/2个矩形。

源代码:

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int t,n,m,count;
 6     cin>>t;
 7     while(t--)
 8     {
 9         cin>>n>>m;
10         count=(n*n+n)*(m*m+m)/4;
11         cout<<count<<endl;
12     }
13     return 0;
14 }

 

posted @ 2015-07-29 15:52  ~瞬间*  阅读(249)  评论(0编辑  收藏  举报