ZCMU1265 数三角形

ZCMU1265 数三角形

Description

给定一个等边三角形,它的每条边被分成n等分,分别用平行于三边的直线过各个n等分点截这个三角形,如图所示:

http://acm.zcmu.edu.cn/JudgeOnline/upload/201311/image/123/%E4%B8%89%E8%A7%92%E5%BD%A2.jpg

请问,图中总共有多少个三角形?

Input

输入包含多组测试数据,直至EOF。

每组测试数据包含一个正整数n,表示三角形三边被分为了n等份(n<500)。

Output

 输出三角形的个数。

Sample Input

1

2

3

Sample Output

1

5

13

思路

用数学方法找出三角形个数的递推公式即可。

https://s1.ax1x.com/2018/07/24/PYyaVg.jpg

注意

有箭头朝上和箭头朝下两种三角形,箭头朝下个数表达式要分奇偶。

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        if(n==1)
            printf("1\n");
        else if(n%2==0)
            printf("%d\n",n*(n+2)*(2*n+1)/8);
        else
            printf("%d\n",(n+1)*(2*n*n+3*n-1)/8);
    }
    return 0;
}