题目地址:点击打开链接
思路:上一层的加上新增的正的三角形,再加上倒的三角形,求正的三角形公式为(n+1)*n/2,即最下面有n+1个点,从这n+1个点中选2个点作为边的边界,即C(n+1,2),这个解释的特别好,点击打开链接,而至于求倒着的三角形的公式如下,n是奇数,(n*n-1)/4,由1+2+....+(n-1)/2+(n-1)/2+...2+1,每个数字代表最下面一条线除2个端点处的点所包含的倒三角形,n是偶数,同理,1+2+...+n/2+..+2+1,和为n*n/4;
AC代码:
#include <iostream>
using namespace std;
int main()
{
int i,n;
__int64 a[501] = {0,1};
for(i=2; i<501; i++)
{
if(i % 2== 0)
{
a[i] = a[i-1] + i*(i+1)/2 + i*i/4;
}
else
a[i] = a[i-1] + i*(i+1)/2 + (i*i-1)/4;
}
while(cin>>n)
{
cout<<a[n]<<endl;
}
return 0;
}