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

数学公式题:

在N边的正方形,正方体,超正方体(4维平面),内分别有多少个正方形(体,超体),长方形(体,超体);

对于N边的正方形,所含有依次从1~N边长的正方形为:N*N+(N-1)*(N-1)+…………2*2+1*1;

同理可知,正方体,超正方体,依次为从1到N的三次方和,四次方和。

对于N边的正方形,所含的矩形的数目为I*J(其中I的范围是1~N,J的范围也是1~N)之和,即为(i*(i+1)/2)*(i*(i+1)/2),所以其所含的长方形的数目为矩形的数目减去正方形的数目。

同理可知,正方体,超正方体。所含的长方形的和。

#include<stdio.h>
#include<math.h>
int main()
{
	long long i,n;
	long long s2[101],s3[101],s4[101];
	long long r2[101],r3[101],r4[101];
	s2[0]=0;s3[0]=0;s4[0]=0;
	for(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;
		r2[i]=(i*(i+1)/2)*(i*(i+1)/2)-s2[i];
		r3[i]=(i*(i+1)/2)*(i*(i+1)/2)*(i*(i+1)/2)-s3[i];
		r4[i]=(i*(i+1)/2)*(i*(i+1)/2)*(i*(i+1)/2)*(i*(i+1)/2)-s4[i];
	}
	while(scanf("%lld",&n)!=EOF)
	{
		printf("%lld %lld %lld %lld %lld %lld\n",s2[n],r2[n],s3[n],r3[n],s4[n],r4[n]);
	}
	return 0;
}


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