202509-金字塔(luogu-B4410)
GESP C++ 2025年9月一级真题,基础语句练习,难度★☆☆☆☆。
luogu-B4410 [GESP202509 一级] 金字塔
题目要求
题目描述
金字塔由 层石块垒成。从塔底向上,每层依次需要 块石块。请问搭建金字塔总共需要多少块石块?
输入格式
一行,一个正整数 ,表示金字塔的层数。
输出格式
一行,一个正整数,表示搭建金字塔所需的石块数量。
输入输出样例 #1
输入 #1
2
输出 #1
5
输入输出样例 #2
输入 #2
5
输出 #2
55
说明/提示
对于所有测试点,保证 。
题目分析
金字塔从底到顶各层所需石块数依次为
。
总石块数即求
由于 ,直接累加或套公式均可,时间复杂度 或 ,空间 。
常规思路:累加法
用循环把 逐项累加,代码直观,适合初学者。示例代码使用该方法实现。
小学数学高手思路:公式法
直接套用平方和公式 ,一步算出答案,效率最高。(大家可以自己尝试)
示例代码
#include <iostream>
int main() {
int n; // 金字塔的层数
std::cin >> n; // 读取用户输入的层数n
int count = 0; // 初始化总石块数为0
// 从第n层循环到第1层,计算每层的石块数i*i,并累加到count中
for (int i = n; i > 0; i--) {
count += i * i; // 每层石块数为 i×i
}
std::cout << count << std::endl; // 输出总共需要的石块数量
return 0;
}
本文由coderli.com原创,按照CC BY-NC-SA 4.0 进行授权
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP 认证学习微信公众号

最后更新于