博客
关于我
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更能体现是处理各个建筑物的。

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

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

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

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

    你可能感兴趣的文章
    Python中执行外部命令
    查看>>
    Python中拼接numpy数组-ChatGPT4o作答
    查看>>
    Python中提示:no module named 'PIL'
    查看>>
    Python中提示:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position
    查看>>
    python中数据类型存储_浅谈Python中的数据类型
    查看>>
    python中文件最重要的功能是什么-学 Python 都用来干嘛的?
    查看>>
    python中文版语言_高盛最新调查:Python超过汉语成为未来最重要技能,你准备学哪种编程语言?...
    查看>>
    Python中文问题SyntaxError
    查看>>
    Python中方括号和括号括起来的列表有什么区别?
    查看>>
    python中时间处理_Python中处理时间的几种方法小结
    查看>>
    Python中枚举串口(包括虚拟端口)的跨平台方法是什么?
    查看>>
    python中根号下a怎么写_python中根号怎么表示
    查看>>
    Python中正则表达式的巧妙使用
    查看>>
    Python中浮点数的二进制表示(位不是十六进制)
    查看>>
    Python中特殊函数和表达式 filter,map,reduce,lambda
    查看>>
    python中用socket检测端口_Python 用socket模块实现检测端口和检测web服务
    查看>>
    python中用于列表操作的plus和append有什么区别?
    查看>>
    python中用递归求和
    查看>>
    python中的@staticmethod
    查看>>
    python中的array函数作用_NumPy 数组使用大全
    查看>>