矩形的个数
时间限制: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 23 2
样例输出
318
题解:主要两个问题
1.a,b范围是<=1000,所以结果最大为2505 0025 0000
大于unsigned和int的范围
2.原理就是矩阵相乘问题。即n=1+2+3...+a;结果就是:1*n+2*n+3*n+...b*n;
等价于(1+a)*a/2*(1+b)*b/2;
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main(){
long long a,b,s;
while(scanf("%lld%lld",&a,&b)!=EOF)
{
s=a*b*(a+1)*(b+1)/4;
printf("%lld\n",s);
}
system("pause");
return 0;
}