题目链接: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 }