【GESP】C++二级模拟 luogu-b3994, [GESP 二级模拟] 周长与面积计算
GESP二级模拟题,多层循环、分支语句练习,难度★✮☆☆☆。
luogu-B3994 [GESP 二级模拟] 周长与面积计算
题目要求
题目描述
小洛有 $n$ 个正方形,第 $1$ 个正方形的边长为 $1$,第 $2$ 个正方形的边长为 $2$,以此类推,第 $n$ 个正方形的边长为 $n$。它们被紧密地排列成一行。小洛想要知道这个图案的周长和面积分别是多少。
例如当 $n=5$ 时的图案如下图所示。红色的边框代表整个图案的周长,绿色区域代表整个图案的面积:
输入格式
输入一个正整数 $n$。
输出格式
输出两行。
第一行一个正整数代表图案的周长;
第二行一个正整数代表图案的面积;
样例输入 #1
1
5
样例输出 #1
1
2
40
55
样例输入 #2
1
9
样例输出 #2
1
2
108
285
提示
对于 $70\%$ 的数据,$1 \leq n \leq 100$;
对于所有数据,$1 \leq n \leq 100000$。
题目分析
解题思路
- 读取输入的正整数 $n$。
- 计算图案的周长 $l$,根据题目描述,周长为 $(1 + n) \times n + n \times 2$。
- 计算图案的面积 $s$,根据题目描述,面积为从 $n$ 到 $1$ 的所有正整数的平方和。
- 输出图案的周长 $l$ 和面积 $s$。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main() {
long long n; // 定义一个长整型变量n
cin >> n; // 从标准输入流中读取n的值
long long s = 0, l = 0; // 定义两个长整型变量s和l,初始化为0
for (long long i = n; i >= 1; i--) { // 从n开始循环,每次递减1
s += i * i; // 计算i的平方并加到s上
}
l = (1 + n) * n; // 计算l的值
l += n * 2; // 计算l的值
cout << l << endl; // 输出l的值并换行
cout << s; // 输出s的值
return 0; // 返回0,表示程序正常结束
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
本文由作者按照 CC BY 4.0 进行授权