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

    你可能感兴趣的文章
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>
    No qualifying bean of type XXX found for dependency XXX.
    查看>>
    No qualifying bean of type ‘com.netflix.discovery.AbstractDiscoveryClientOptionalArgs<?>‘ available
    查看>>
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    node exporter完整版
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>