1 条题解
-
0
📝 题目大意
给定整数 和 (,),计算 的值,将其四舍五入到小数点后第 4 位,再以 3 位小数的格式输出(末尾零不可省略)。
💡 解题思路
- 题目分析:数据范围极小(),直接使用浮点数运算即可。核心在于格式化输出,要求精确到小数点后 3 位,且末尾零必须保留(如
0.500不能输出为0.5)。 - 算法推导:题目要求先将 四舍五入到第 4 位小数,再取前 3 位输出。实际上,这一过程等价于直接将 四舍五入到第 3 位小数。因为第 4 位小数的舍入只会影响第 3 位——若第 4 位 ,第 3 位进 1;若第 4 位 ,第 3 位不变。这一逻辑与
printf("%.3lf")直接对第 4 位进行四舍五入完全一致。因此直接使用printf("%.3lf", B / A)即可。 - 边界与细节:
- 时,需输出
0.000(末尾零不可省略)。 - 时,需输出
1.000。 - 使用
double类型足以保证精度,因为 ,除法结果不会产生浮点精度问题。
- 时,需输出
⏱️ 复杂度分析
- 时间复杂度:,仅一次除法与格式化输出。
- 空间复杂度:,仅使用常数个变量。
💻 标准代码 (C++)
#include<bits/stdc++.h> using namespace std; int main() { // 读入 A 和 B double a,b;scanf("%lf%lf",&a,&b); // 计算 B/A,四舍五入保留 3 位小数输出 // printf 的 %.3lf 会自动对第 4 位小数进行四舍五入 printf("%.3lf",b/a); return 0; } - 题目分析:数据范围极小(),直接使用浮点数运算即可。核心在于格式化输出,要求精确到小数点后 3 位,且末尾零必须保留(如
- 1
信息
- ID
- 651
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者