1412200906-hd-矩形A+B

来源:互联网 发布:比特币购买 知乎 编辑:程序博客网 时间:2024/04/27 19:51
【科普】什么是BestCoder?如何参加?

矩形A + B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4511    Accepted Submission(s): 3491


Problem Description
给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形,下图为高为2,宽为4的网格.
 

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

Output
每行输出网格中有多少个矩形.
 

Sample Input
2
1 2
2 4
 

Sample Output
3
30
解题思路
我没想到直接用公式sum=n*(n+1)*m*(m+1)/4。我用了笨方法,双重for循环,
第一层循环是新矩形的宽,第二层循环是新矩形的长。
代码
#include<stdio.h>int main(){int n;int a,b;int sum;int i,j,k,x;scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);if(a<b){x=a;a=b;b=x;}sum=0;for(i=1;i<=b;i++)//新矩形列有i个     for(j=1;j<=a;j++)//新矩形横有j个         sum+=(b-i+1)*(a-j+1);//或者直接用公式sum=a*(a+1)*b*(b+1)/4;printf("%d\n",sum);}return 0;} 


 
0 0
原创粉丝点击