1 条题解

  • 0
    @ 2025-9-15 23:15:40

    C

    说明

    本题要求读取一个浮点数,并保留12位小数输出。核心逻辑是利用格式化输出功能指定小数位数,同时自动处理四舍五入(如样例中输入的第13位小数为7,大于5,故第12位小数进1)。
    使用double类型存储输入的浮点数(可处理更大范围和更高精度),通过printf%.12f格式控制符实现保留12位小数的输出,时间复杂度为O(1)。

    代码

    #include <stdio.h>
    
    int main() {
        double x;
        // 读取浮点数(double类型用%lf格式)
        scanf("%lf", &x);
        
        // 输出保留12位小数的浮点数,%.12f指定格式
        printf("%.12f\n", x);
        return 0;
    }
    

    C语言拓展知识

    推荐搜索:printf中%.12f的四舍五入规则(如何处理第13位小数)、double类型的精度范围(最多可表示多少位有效数字)、浮点数在内存中的存储对输出精度的影响。

    C++

    说明

    本题与C语言解法目标一致,均为保留12位小数输出浮点数。C++通过fixedsetprecision(12)组合控制输出精度,其中fixed指定固定小数位数模式,setprecision(12)设置小数位数为12,自动完成四舍五入,代码简洁且格式控制清晰。

    新知识

    1. 高精度小数输出:
      • 术语:setprecision(12)fixed模式下的应用
      • 解释:当fixed生效时,setprecision(n)精确控制小数部分的位数为n。本题中n=12,即输出结果保留12位小数,第13位小数会触发四舍五入(如样例中第13位为7,第12位进1)。
      • 对比:C语言需在格式字符串中写%.12f;C++通过操纵符组合实现,更便于动态调整精度(如将12改为变量)。

    AC

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        double x;
        // 读取浮点数(double类型直接用cin读取)
        cin >> x;
        
        // fixed + setprecision(12) 保留12位小数并四舍五入
        cout << fixed << setprecision(12) << x << endl;
        return 0;
    }
    

    C++拓展知识

    推荐搜索:setprecision在不同模式(fixed/默认)下的行为差异、double类型能可靠表示的小数位数上限、C++浮点数输出的 rounding mode(四舍五入模式)设置方法。

    • 1

    信息

    ID
    225
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    118
    已通过
    49
    上传者