Counting Triangles

Problem Description

Given an equilateral triangle with n thelength of its side, program to count how many triangles in it.

Input

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



process to the end of the file

Output

The number of triangles in the equilateraltriangle, one per line.

Sample Input

1

2

3

Sample Output

1

5

13

/*****************************************

数三角形的个数,开始忽略了顶角在最后一排的倒着的那些三角形,老是WA,然后怎么数都不对,后来看了别人的博客,我数的方式不对,

正确数的方式::假设边长为n

先数正向的三角形

1+2+3+......+(n-1)+n     ————(边长为1的三角形)

1+2+3+......+(n-2)+(n-1)     ————(边长为2的三角形)

1+2+3+......+(n-3)+(n-2)     ————(边长为3的三角形)

…………

1+2+3                      ————(边长为n-2的三角形)

1+2                      ————(边长为n-1的三角形)

1  ————(边长为n的三角形)

然后数倒着的三角形

当n为偶  /  奇  数时:1+2+3+……+(n-1)  ————(边长为1的三角形)

1+2+3+……+(n-3)  ————(边长为2的三角形)

1+2+3+……+(n-5)  ————(边长为3的三角形)

…………

1+2+3    ————(边长为   (n-2)/2   的三角形)

1————(边长为   n/2   的三角形)                     1————(边长为2的三角形)    最后一行注意,n为偶数  则+1  ,,n为奇数  则  + (1+2)

******************************************************/

#include <iostream>
using namespace std;
int num[1000];
void cal()
{
num[1] = 1;int i;
for(i = 2;i<500;i++)
num[i] = num[i-1]+i;
}
int main()
{
cal();
int n,i,sum;
while(cin>>n&&n)
{
sum = n*(n+1)*(n+2)/6;
n-=1;
while(n>0)
{
sum+=num[n];
n-=2;
}
cout<<sum<<endl;
}
return 0;
}

hdu 1396 Counting Triangles(递推)的更多相关文章

  1. HDU 2085 核反应堆 --- 简单递推

    HDU 2085 核反应堆 /* HDU 2085 核反应堆 --- 简单递推 */ #include <cstdio> ; long long a[N], b[N]; //a表示高能质点 ...

  2. HDU 5860 Death Sequence(递推)

    HDU 5860 Death Sequence(递推) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=5860 Description You ...

  3. hdu 2604 Queuing(dp递推)

    昨晚搞的第二道矩阵快速幂,一开始我还想直接套个矩阵上去(原谅哥模板题做多了),后来看清楚题意后觉得有点像之前做的数位dp的水题,于是就用数位dp的方法去分析,推了好一会总算推出它的递推关系式了(还是菜 ...

  4. HDU 2154 跳舞毯 | DP | 递推 | 规律

    Description 由于长期缺乏运动,小黑发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥. 小黑买来一块圆形的毯子,把它们分成三等分,分别标上A,B,C,称之为“跳舞毯”,他的运动方式是 ...

  5. HDU - 3336 next运用+递推

    题目的匹配应该也要看成一个文本串与另一个模式串的匹配过程 Text是以当前i结尾的后缀来匹配Pattern的前缀(非真) 这里的Pattern肯定是可以匹配成功的,直接由next来保证(next总是当 ...

  6. POJ 3046 Ant Counting(递推,和号优化)

    计数类的问题,要求不重复,把每种物品单独考虑. 将和号递推可以把转移优化O(1). f[i = 第i种物品][j = 总数量为j] = 方案数 f[i][j] = sigma{f[i-1][j-k], ...

  7. hdu 5950 Recursive sequence 递推式 矩阵快速幂

    题目链接 题意 给定\(c_0,c_1,求c_n(c_0,c_1,n\lt 2^{31})\),递推公式为 \[c_i=c_{i-1}+2c_{i-2}+i^4\] 思路 参考 将递推式改写\[\be ...

  8. HDU 5950 Recursive sequence 递推转矩阵

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  9. luogu P1216 [IOI1994][USACO1.5]数字三角形 Number Triangles (递推)

    链接:https://www.luogu.org/problemnew/show/P1216 题面: 题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的 ...

随机推荐

  1. Web---自己写的一个简单云相册~

    实现的功能是: 用户可以一次上传一个至多个文件. 用户可以下载其他人上传的图片. 用户可以查看其他所有人的图片. 用户只能删除通过自己IP上传的图片. 用到的技术: 文件上传下载.设计模式.Dom4j ...

  2. JavaScript高级程序设计22.pdf

    操作节点 appendChild()用于向childNodes列表末尾添加一个节点,appendChild()返回新增的节点 var returnedNode=someNode.appendChild ...

  3. extjs的button控件fireEvent('click')无效问题

    extjs的button控件fireEvent('click')无效问题 2012-06-06 16:39 891人阅读 评论(0) 收藏 举报 extjsbuttoncallbackfunction ...

  4. Python的高级特性之切片、迭代、列表生成式、生成器

    切片 切片就是获取一个list.tuple.字符串等的部分元素 l = range(100) #取[0,5)元素 print(l[:5]) #[0, 1, 2, 3, 4] #在[0,99]中每隔10 ...

  5. yum puppet

    config.gem: Unpacked gem factory_girl-1.3.3 in vendor/gems has no specification file. Run 'rake gems ...

  6. 七个你必须重视的 Git 使用技巧

    与其他技术相比,Git应该拯救了更多开发人员的饭碗.只要你经常使用Git保存自己的工作,你就一直有机会可以将代码退回到之前的状态,因此就可以挽回那些你深夜里迷迷糊糊犯下的错误. 尽管这么说,Git的命 ...

  7. 如何在google test中指定只运行一部分测试

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在google test中指定只运行一部分测试.

  8. Java验证码和ajax判断

    关于来了解相关的api BufferedImage(int width, int height, int imageType) 构造一个类型为预定义图像类型之一的 BufferedImage. Buf ...

  9. Android注解支持(Support Annotations)

    注解支持(Support Annotations) Android support library从19.1版本开始引入了一个新的注解库,它包含很多有用的元注解,你能用它们修饰你的代码,帮助你发现bu ...

  10. List<T>实体去重分组:

    实体去重分组: //实体类 public class Province { public string id { get; set; } public string name { get; set; ...