My coding way (4)

来源:互联网 发布:域名怎么管理 编辑:程序博客网 时间:2024/05/04 12:35

问题 C:数方格

时间限制:1 Sec  内存限制:128 MB

题目描述

设有一个n*m方格的棋盘(1≤m,n≤100)。(30%

求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。

例如:当n=2m=3

 

 

 

 

 

 

 

正方形的个数有8个;即边长为1的正方形有6个;

边长为2的正方形有2个。

长方形的个数有10个;

2*1的长方形有4个;

 

 

 

 

 

1*2的长方形有3个;

 

 

 

3*1的长方形有2个;

 

 

 

 

3*2的长方形有1个。

 

 

 

 

 

 

 

 

输入

第一行输入一个整型数T,这个数字为测试数据的个数。从第二行开始会有T组测试数据,每行为两个正整数NM(1<=n,m<=100)

输出

与测试数据对应,刚好有T行测试数据,每行包含两个数,分别为正方形的个数与长方形的个数,两个数之前用一个空格隔开,行尾不要有多余的空格。

样例输入

2

2 3

3 4

样例输出

8 10

20 40

 

O_O 最开始企图使用数学方法找规律,然而很快发现自己数学真是太差了ORZ 于是就换了一种方法w

#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\n",square,box);    }    return 0;}


0 0
原创粉丝点击