题目来源:第七届蓝桥杯省赛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;
}