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

    你可能感兴趣的文章
    npm ERR! fatal: unable to connect to github.com:
    查看>>
    npm ERR! Unexpected end of JSON input while parsing near '...on":"0.10.3","direc to'
    查看>>
    npm ERR! Unexpected end of JSON input while parsing near ‘...“:“^1.2.0“,“vue-html-‘ npm ERR! A comp
    查看>>
    npm error Missing script: “server“npm errornpm error Did you mean this?npm error npm run serve
    查看>>
    npm error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装
    查看>>
    npm install CERT_HAS_EXPIRED解决方法
    查看>>
    npm install digital envelope routines::unsupported解决方法
    查看>>
    npm install 卡着不动的解决方法
    查看>>
    npm install 报错 EEXIST File exists 的解决方法
    查看>>
    npm install 报错 ERR_SOCKET_TIMEOUT 的解决方法
    查看>>
    npm install 报错 Failed to connect to github.com port 443 的解决方法
    查看>>
    npm install 报错 fatal: unable to connect to github.com 的解决方法
    查看>>
    npm install 报错 no such file or directory 的解决方法
    查看>>
    npm install 权限问题
    查看>>
    npm install报错,证书验证失败unable to get local issuer certificate
    查看>>
    npm install无法生成node_modules的解决方法
    查看>>
    npm install的--save和--save-dev使用说明
    查看>>
    npm node pm2相关问题
    查看>>
    npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
    查看>>
    npm run build报Cannot find module错误的解决方法
    查看>>