博客
关于我
PAT乙级 1053 住房空置率 (20分)
阅读量:605 次
发布时间:2019-03-12

本文共 1793 字,大约阅读时间需要 5 分钟。

  • 输出小数点后1位使用%.1f,并在%后加上两个%%\"%.1f\"%%。或者使用printf("%.1f%%", value);这样会自动添加百分号。

  • 注意%特殊符号需要用两个%%来表示。例如printf("结果%%", "数值")会输出"结果%"。如果需要空格和百分号,可以用printf(" %.1f%%", value);这样会有一个空格和一个百分号。

  • 针对代码中的主要逻辑,可能存在以下优化点:

    • 输入处理优化:可以将输入处理逻辑和计算分离,以提高代码可维护性和读取性。创建一个输入类或者输入处理函数,如果输入量大可以考虑使用文件操作或数据读取工具,以避免繁琐的输入处理。

    • 变量类型优化:当前代码中,temp变量是float类型,如果觉得精度不足,可以使用double类型。

    • 计算优化:在计算空置率时,certain的计算条件和may或许可以进一步优化,看看是否有重复的计算,这部分需要具体情况具体分析。

    代码示例优化方案:

    #include 
    #include
    // 用于格式化输出using namespace std;double computeAirConditionerUsage(float thr, int tday, int all) { int may = 0, certain = 0; for (int building = 0; building < all; building++) { int day = 0; double usage = 0; cin >> day; // 与之前的行为一致 for (int i = 0; i < day; i++) { float temp = 0; cin >> temp; if (temp < thr) { usage += 1.0; // 但是要看出这里的逻辑,应该是: // temp < thr,下面的判断是否更准确? } } // 调整后的条件判断,更好地形成逻辑 if (day > tday) { if (usage * 2 > day) { certain++; } } else { if (usage * 2 > day) { may++; } } } // 计算百分比并处理格式输出问题 double may_rate = may * 100.0 / all, certain_rate = certain * 100.0 / all; // 利用`setprecision`和`fixed`函数化格式 cout << fixed << setprecision(1); cout << may_rate << "%" << endl << certain_rate << "%" << endl; return 0;}

    优化点说明:

  • 代码结构:将业务逻辑封装为函数,便于维护和扩展,并且第一次调用时,input流程保持不变。

  • 输入流优化:使用一个循环来处理所有的输入,减少重复的循环嵌套,变量名称用building更能体现是处理各个建筑物的。

  • 逻辑判断优化:将原来的两个条件判断合并为一个更清晰的逻辑链,避免重复判断,提升代码可读性和效率。

  • 格式化输出:使用setprecisionfixed来确保小数点后只输出一位,并且加上百分号,而不是手动处理字符串,这种方式更安全,避免格式错误。

  • 仔细检查计算逻辑:原来代码中temp < thr的条件是否正确,对应于空置率的计算,是否准确得出空置天数。如果temp是指某个用电器的耗电量,小于thr则可能空置,逻辑是否正确?这取决于具体的数据定义。但是代码中需要有清晰的定义,确定空置的准确标准。

  • 转载地址:http://xfrxz.baihongyu.com/

    你可能感兴趣的文章
    Plotly 域变量解释(多图)
    查看>>
    Plotly 绘制表面 3D 未显示
    查看>>
    Plotly-Dash 存在未知问题并创建“加载依赖项时出错“;通过使用 Python-pandas.date_range
    查看>>
    Plotly-Dash:如何过滤具有多个数据框列的仪表板?
    查看>>
    Plotly:如何为 x 轴上的时间序列设置主要刻度线/网格线的值?
    查看>>
    Plotly:如何从 x 轴删除空日期?
    查看>>
    Plotly:如何从单条迹线制作堆积条形图?
    查看>>
    Plotly:如何以 Root 样式绘制直方图,仅显示直方图的轮廓?
    查看>>
    Plotly:如何使用 Plotly Express 组合散点图和线图?
    查看>>
    Plotly:如何使用 plotly.graph_objects 和 plotly.express 定义图形中的颜色?
    查看>>
    Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?
    查看>>
    Plotly:如何使用 updatemenus 更新一个特定的跟踪?
    查看>>
    Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
    查看>>
    Plotly:如何向烛台图添加交易量
    查看>>
    Plotly:如何在 plotly express 中找到趋势线的系数?
    查看>>
    Plotly:如何在桑基图中设置节点位置?
    查看>>
    Plotly:如何处理重叠的颜色条和图例?
    查看>>
    Plotly:如何手动设置 plotly express 散点图中点的颜色?
    查看>>
    Plotly:如何结合 make_subplots() 和 ff.create_distplot()?
    查看>>
    Plotly:如何绘制累积的“步骤“;直方图?
    查看>>