码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 蓝桥杯练习题十 - 煤球数目(c++)


    题目如下

     

    有一堆煤球,堆成三角棱锥形。具体:

    第一层放1个,

    第二层3个(排列成三角形),

    第三层6个(排列成三角形),

    第四层10个(排列成三角形),

    ....

    如果一共有100层,共有多少个煤球?

    以下程序实现了这一功能,请你补全以下空白处内容:

    1. #include
    2. using namespace std;
    3. int f[101];
    4. int main()
    5. {
    6. f[1] = 1;
    7. for (int i = 2; i <= 100; i++)
    8. f[i] = f[i - 1] + i;
    9. for (int i = 2; i <= 100; i++)
    10. ____________________;
    11. cout << f[100];
    12. return 0;
    13. }

    这道题可以说是非常简单的了,直接给出缺失部分的代码:

    f[i] = f[i - 1] + f[i];

    简单解析

    f[i]是有规律的,你会发现f[i]总是等于f[i-1]+i,那么f[100]自然就是f[99]+100,所以这里要分别求出f[99]及其前面的每一项才能最终得到他们相加的所有煤球的总值。

    有没有更快捷的方式

    那么问题来了,题目中给出的答案用了两个for循环,是不是有点浪费效率了呢?

    答案是肯定的,由于f[i]总是等于f[i-1]+i,那么我们是不是可以在一个for循环中完成所有的运算呢?

    请看如下代码:

    1. #include
    2. using namespace std;
    3. int f[101];
    4. int main()
    5. {
    6. f[1] = 1;
    7. int sum = f[1];
    8. for (int i = 2; i <= 100; i++) {
    9. f[i] = f[i - 1] + i;
    10. sum += f[i];
    11. }
    12. cout << sum;
    13. return 0;
    14. }

    运行结果如下:

    就这么简单的一修改,效率提升了一半,我们在日常的开发中,类似的场景还有很多,都是我们降本提效的方式。

    总结 

    这道题整体上很简单,算是给一路看过来的朋友做个减负,前面的题可是有一些比较难的,今天就相对轻松点吧。虽然简单,但有问题,还是欢迎同学们评论区讨论。 

  • 相关阅读:
    Python小功能实现(链接下载图品并存储到EXCEL中)
    Python基础导读:列表+字典+元组+集合
    YOLOv7改进:全网原创首发 | 多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9
    FEDformer 代码分析(2)
    uml简单用例图怎么画(要素,文字形式)
    固有时间尺度分解(Intrinsic Time Decomposition,ITD)
    搜索替换 csv 文件中的文本
    epoll 的实现
    配置力扣的本地刷题环境之C++链表篇
    nodejs+vue+elementui实验室预约管理系统
  • 原文地址:https://blog.csdn.net/CodingFire/article/details/126651764
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号