0%

第七届蓝桥杯C/C++ 本B 省赛 第1题 煤球数目(结果填空)

煤球数目

有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
….
如果一共有100层,共有多少个煤球?

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

思路一

第1层的煤球数目为1

第2层的煤球数目为1+2

第3层的煤球数目为1+2+3
……

用一个for循环可以进行第n层数目的求解
再外套一个for循环可以求解n层所有数目

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;

int main(){
int i,j,sum=0;
for(i=1;i<=100;i++){
for(j=1;j<=i;j++){
sum+=j;
}
}
cout<<sum<<endl;
return 0;
}

思路二

1 2 3 4 5 6……这一个等差数列的前n项和为(1+n)*n/2

第1层的煤球数目为1

第2层的煤球数目为1+2

第3层的煤球数目为1+2+3
……

第i层的煤球数组为(1+n)*n/2
用一个for循环即可实现

1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main(){
int sum=0;
for(int i=1;i<=100;i++){
sum+=i*(i+1)/2;
}
cout<<sum<<endl;
return 0;
}

答案:171700