1 条题解
-
0
自动搬运
来自洛谷,原作者为

Maxmilite
**搬运于
2025-08-24 21:15:49,当前版本为作者最后更新于2023-12-09 00:40:57,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Source & Knowledge
2023 年 12 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
给定一个非负整数 ,找到最小的非负整数 ,使得 。
题目分析
本题考察对顺序结构的运用。
根据题目,可以得知 。
我们对 这个式子做一点变形。
$$\begin{aligned} & \left \lfloor 10 \sqrt x \right \rfloor \geq a \\ \Rightarrow & \left( \lfloor 10 \sqrt x \rfloor \right ) ^ 2\geq a ^ 2 = a \times a \\ \Rightarrow & (10 \times 10) \times \sqrt x \times \sqrt x \geq a ^ 2\\ \Rightarrow & 100 \times x \geq a ^ 2\\ \Rightarrow & 100 \times x \div 100 \geq a ^ 2 \div 100\\ \Rightarrow & x \geq a ^ 2 \div 100\\ \end{aligned} $$由于 可能是小数,因此我们需要让 取这个值上取整后的值。
C++ 的
cmath库中有函数ceil(x),代表对x上取整后的结果。同时,在 C++ 中,当 是整数时,
a * a / 100中的除法为整数除法,结果默认为下取整,因此需要将a转换为double小数后再做运算。核心代码如下:
int a; cin >> a; int ans = ceil((double) a * a / 100); cout << ans << endl;视频讲解
- 1
信息
- ID
- 9484
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者