博客
关于我
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/

    你可能感兴趣的文章
    Nginx 多端口配置和访问异常问题的排查与优化
    查看>>
    Nginx 如何代理转发传递真实 ip 地址?
    查看>>
    Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 学习(一):Nginx 下载和启动
    查看>>
    nginx 常用指令配置总结
    查看>>
    Nginx 常用配置清单
    查看>>
    nginx 常用配置记录
    查看>>
    nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 结合 consul 实现动态负载均衡
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>
    Nginx 负载均衡详解
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置https(一)—— 自签名证书
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx 配置清单(一篇够用)
    查看>>
    Nginx 配置解析:从基础到高级应用指南
    查看>>