【第七届蓝桥杯】煤球数目

来源:互联网 发布:如何查询淘宝购买记录 编辑:程序博客网 时间:2024/05/16 23:52
题目:煤球数目

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

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


答案:171700


思路:

 这题的关键是要找出下一层比上一层多几个的规律:
 第i层       煤球数           差             加      
   0           0                           0 + 1 = 1 
   1           1             1-0  = 1      1 + 2 = 3 
   2           3             3-1  = 2      3 + 3 = 6 
   3           6             6-3  = 3      6 + 4 = 10 
   4           10            10-6 = 4     10 + 5 = 15 
   ......

或者第i层的煤球数为 i * (i+1) / 2 


C++代码一:

#include <iostream>using namespace std;int main(){long long k, t = 2, n = 1, sum = 0;for (k = 1; k <= 100; ++k){sum += n;  // 前k层煤球总数n += t;    // 第k+1层煤球数 ++t;       // 第k+2层与第k+1层的差   }cout << sum << endl;return 0;}

C++代码二:

#include <iostream>using namespace std;int main(){int m = 0, sum = 0;for(int i = 1; i <= 100; i++){m += i; // 每层在上一层煤球数的基础上加上层数 sum += m; // 累加每层的煤球数 }cout << sum;return 0;} 

C++代码三:

#include<iostream>using namespace std;int main(){int i, sum = 0;for (i = 1; i <= 100; ++i)sum += i * (i + 1) / 2;cout << sum << endl;return 0;} 

第七届蓝桥杯所有组试题与部分答案



原创粉丝点击