博客
关于我
第七届蓝桥杯(软件类)省赛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/

你可能感兴趣的文章
Nginx 反向代理配置去除前缀
查看>>
nginx 后端获取真实ip
查看>>
Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
Nginx 常用配置清单
查看>>
nginx 常用配置记录
查看>>
Nginx 我们必须知道的那些事
查看>>
Nginx 的 proxy_pass 使用简介
查看>>
Nginx 的配置文件中的 keepalive 介绍
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>
nginx+Tomcat性能监控
查看>>
Nginx下配置codeigniter框架方法
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
查看>>
nginx添加模块与https支持
查看>>
Nginx用户认证
查看>>