这道题突然让我回到了高二时候,想起来那时候大组长教我们这个找矩形数目,用排列组合做,横着找两条边,竖着找两条边,然后一夹就是一个矩形,当时怎么想都没明白,可能当时身体实在太虚了,没办法将精力全部集中到学习上,诶,悔之晚矣啊。回到这道题上,这虽然算法很简单,但是数据类型不对的话,也是做不出来的,例如如果不用 long long 的话,绝对是错。另外提一下,cin也是可以处理EOF的。
描述
在一个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
#include<iostream>
using namespace std;
int main(){
long long m,n;
while(cin>>n>>m){
long long sum;
sum=(n+1)*n*(m+1)*m;
cout<<sum/4<<endl;
}
return 0;
}