HDU1396:Counting Triangles

来源:互联网 发布:java poi word 编辑:程序博客网 时间:2024/05/18 06:32
Problem Description
Given an equilateral triangle with n the length of its side, program to count how many triangles in it.



 

Input
The length n (n <= 500) of the equilateral triangle's side, one per line.

process to the end of the file
 

Output
The number of triangles in the equilateral triangle, one per line.
 

Sample Input
123
 

Sample Output
1513
 


 

递推:将前一个的三角形数+新增的两层大小的三角形数+新增的三层以上的三角形数就得出现在的三角形总数

 

#include <stdio.h>int main(){    __int64 a[505];    int i;    int k;    a[1] = 1;    for(i = 2;i<=500;i++)    {        a[i] = a[i-1]+i*(i+1)/2;        k = i-1;        while(k>0)        {            a[i]+=k;            k-=2;        }    }    while(~scanf("%d",&k))    {        printf("%I64d\n",a[k]);    }    return 0;}