【问题描述】
有一堆煤球,堆成三角棱锥形。具体:
第一层放 1 个,
第二层放 3 个(排列成三角形),
第三层放 6 个(排列成三角形),
第四层放 10 个(排列成三角形),
…
如果一共有100层,共有多少个煤球?
【答案提交】
请填表示煤球总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
题解:
- #include <cstdio>
- #include <cstring>
- #include <iostream>
- #include <algorithm>
-
- using namespace std;
-
- int main()
- {
- int sum = 0, d = 0;
- for(int i = 1;i <= 100; i ++)
- {
- d += i; // d 表示每一层的煤球数量
- sum += d; // 累加
- }
-
- cout << sum << endl;
- return 0;
- }
答案:171700
练习题:煤球数目
有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
....
如果一共有100层,共有多少个煤球?
以下程序实现了这一功能,请你补全以下空白处内容:
- #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++)
- ____________________;
-
- cout << f[100];
- return 0;
- }
| A | f[i] = f[i - 1] + f[i - 2]; |
| B | f[i] = f[i - 1] + f[i]; |
| C | f[i] = f[i + 1] + f[i - 1]; |
| D | f[i] = f[i + 1] + f[i]; |
答案:f[i] = f[i - 1] + f[i];