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

来源:互联网 发布:如何注册多个淘宝小号 编辑:程序博客网 时间:2024/06/10 09:41

UVA-10177

题意:求变长为n的正方形,正方体,四维n*n*n*n中有分别多少个正方形,非正方形的矩形,正方体,非正方体立体和正四维体,非正四维体。
解题思路:对于变长为n正方形来说,里面正方形个数为r2=1*1+2*2+……+n*n ,所有矩形个数为 t=(1+2+3+……+n)^2,非正方形个数 s2 = t - r2。三维四维同理推得。

/*************************************************************************    > File Name: UVA-10177.cpp    > Author: Narsh    >     > Created Time: 2016年07月15日 星期五 09时55分04秒 ************************************************************************/#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;long long r2[120],s2[120],r3[120],s3[120],r4[120],s4[120];int n;int main () {    r2[0]=s2[0]=r3[0]=s3[0]=r4[0]=s4[0]=0;    for (int i = 1; i <= 100; i++) {        s2[i] = s2[i-1] +i*i;        s3[i] = s3[i-1] +i*i*i;        s4[i] = s4[i-1] +i*i*i*i;        long long j = i*(i+1)/2;        r2[i] = j*j -s2[i];        r3[i] = j*j*j - s3[i];        r4[i] = j*j*j*j - s4[i];    }    while (scanf("%d",&n) != EOF){        printf("%lld %lld %lld %lld %lld %lld\n",s2[n],r2[n],s3[n],r3[n],s4[n],r4[n]);    }}
0 0
原创粉丝点击