您的位置:首页 > 其它

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

2016-07-15 20:09 330 查看

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
,r2
,s3
,r3
,s4
,r4
);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: