博客
关于我
第七届蓝桥杯(软件类)省赛C++B组真题题解
阅读量:218 次
发布时间:2019-02-28

本文共 922 字,大约阅读时间需要 3 分钟。

煤球数目

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


解题思路

每一层的煤球数目形成一个数列,该数列的通项公式为 ( a_i = i(i+1)/2 )。要计算100层的总煤球数目,我们需要对该数列求和。

将数列拆分为 ( a_i = i^2 + i ),因此总和为:[S = \sum_{i=1}^{100} a_i = \sum_{i=1}^{100} \frac{i^2 + i}{2} = \frac{1}{2} \left( \sum_{i=1}^{100} i^2 + \sum_{i=1}^{100} i \right)]

利用已知的求和公式:[\sum_{i=1}^n i = \frac{n(n+1)}{2}, \quad \sum_{i=1}^n i^2 = \frac{n(n+1)(2n+1)}{6}]

代入 ( n = 100 ):[\sum_{i=1}^{100} i = \frac{100 \times 101}{2} = 5050][\sum_{i=1}^{100} i^2 = \frac{100 \times 101 \times 201}{6} = 338350]

因此:[S = \frac{338350 + 5050}{2} = \frac{343400}{2} = 171700]


代码

#include 
using namespace std;typedef long long ll;const int INF = 0x3f3f3f3f;const int maxn = 1e5 + 5;const int mod = 1e9 + 7;void solve() { int temp = 0, ans = 0; for (int i = 1; i <= 100; ++i) { temp += i; ans += temp; } cout << ans << endl;}

答案

171700

转载地址:http://vcsn.baihongyu.com/

你可能感兴趣的文章
python与c语言混合编程_你试过C语言和Python一起混合编程吗?两者相加不是已经无敌了!...
查看>>
python与excel
查看>>
Python与Excel的完美邂逅:深入浅出,手把手教你轻松玩转Excel数据操作
查看>>
python与flask_Python编程中flask的简介与简单使用
查看>>
python与图灵机器人交互(WXPY版本)
查看>>
python与运算符_python运算符
查看>>
python两个列表获取交集,并集,差集
查看>>
python两个字典合并,两个list合并
查看>>
Python两个版本共存时,命令行升级pip
查看>>
Python两个版本共存时,怎么验证是否安装成功 scrapy
查看>>
Python两个版本共存时,通过pip安装Scrapy
查看>>
python两组变量的相关关系散点图_变量是什么?变量间的两种关系——函数关系和相关关系(小学版)...
查看>>
Python中 pass语句的作用
查看>>
python中 urllib, urllib2, httplib, httplib2 几个库的区别
查看>>
python中 yaml库 & json库 & xmltodict库使用
查看>>
python中 将你的名字转化成为二进制并输出
查看>>
Python中*args 和**kwargs的用法
查看>>
Python中*args 和**kwargs的用法
查看>>
Python中*args和**kwargs的使用
查看>>
python中0、1、True、False、if条件
查看>>