My coding way (4)

1544 ワード

問題C:数方格
時間制限:1 Secメモリ制限:128 MB
タイトルの説明
n*m四角形の碁盤(1≦m,n≦100)が設けられている.(30%)
この碁盤に何個の正方形、何個の長方形(正方形を含まない)が含まれているかを求めます.
例えば、n=2、m=3の場合
 
 
 
 
 
 
 
正方形の個数は8個あります.すなわち、辺長が1の正方形は6つある.
辺の長さが2の正方形は2つあります.
長方形の個数は10個ある.
すなわち2*1の長方形は4つある.
 
 
 
 
 
1*2の長方形は3つあります.
 
 
 
3*1の長方形は2つあります.
 
 
 
 
3*2の長方形は1つあります.
 
 
 
 
 
 
 
 
入力
最初の行には、テストデータの個数である整数Tが入力される.2行目からT組のテストデータがあり、行ごとに2つの正の整数NとM(1<=n、m<=100)がある.
しゅつりょく
テストデータに対応して、ちょうどT行のテストデータがあって、各行は2つの数を含んで、それぞれ正方形の個数と長方形の個数で、2つの数の前に1つのスペースで隔てて、行末は余分なスペースがないでください.
サンプル入力
2
2 3
3 4
サンプル出力
8 10
20 40
 
O_Oは最初は数学の方法で法則を探そうとしたが、すぐに自分の数学が本当に悪いことに気づいた.ORZは方法を変えた.
#include <stdio.h>
int main()
{
    int all,maxl,maxh;
    int square,box;
    int l,h;
    scanf("%d",&all);
    for(;all>0;all--)
    {
        square=0;box=0;
        scanf("%d %d",&maxl,&maxh);
        for(l=1;l<=maxl;l++)
        {
            for(h=1;h<=maxh;h++)
            {
                if(l==h)
                {
                    square+=(maxl-l+1)*(maxh-h+1);
                }
                else
                {
                    box+=(maxl-l+1)*(maxh-h+1);
                }
            }
        }
        printf("%d %d
",square,box); } return 0; }