题目来源:第七届蓝桥杯省赛C++B组

算法标签:递推

题目描述:

有一堆煤球,堆成三角棱锥形。具体: 第一层放1个,
第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), …
如果一共有100层,共有多少个煤球?
请填表示煤球总数目的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

题目答案:

171700

题目思路:

由题目可知!

层 数 1 1 2 3 3 6 4 10

简单推测可知,f[i]=f[i-1]+i,最终累加即可。

题目代码

#include <iostream>

using namespace std;
int f[101];
int main()
{
f[1] = 1;
for (int i = 2; i <= 100; i++)f[i] = f[i - 1] + i;//递推
for (int i = 2; i <= 100; i++)f[i] = f[i - 1] + f[i];//前缀和

cout << f[100];
return 0;
}