uva 10177 (2/3/4)-D Sqr/Rects/Cubes/Boxes?

题意:给你一个长度n,问n*n的矩形里有几个正方形s2,有几个长方形q2,n*n*n里有几个正方体s3,有几个长方体r3...

边长为1的正方形有n*n个,边长为2的正方形有(n-1)*(n-1)个。。。。

矩形,边长为1的边长有n个可能位置,边长为2的边长有n-1个可能位置,所以矩形所有可能边长个数是n(1+n)/2,从中选出两个组成就可以组成一个矩形。

长方形个数用矩形个数减去正方形个数。

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        long long s2=0,r2=0,s3=0,r3=0,s4=0,r4=0,temp=n*(n+1)/2;
        for(int i=1;i<=n;i++)
        {
            s2+=i*i;
            s3+=i*i*i;
            s4+=i*i*i*i;
        }
        r2=temp*temp;
        r3=temp*temp*temp;
        r4=temp*temp*temp*temp;
        printf("%lld %lld %lld %lld %lld %lld\n",s2,r2-s2,s3,r3-s3,s4,r4-s4);
    }
    return 0;
}


你可能感兴趣的:(uva 10177 (2/3/4)-D Sqr/Rects/Cubes/Boxes?)