充电总时间计算 (python)| 豆包MarsCode AI刷题

114 阅读3分钟

问题描述

小R有n部电脑,每部电脑的电池容量分别为ai。她可以使用两种不同的充电方式来给电脑充电:

  1. 普通充电:每单位时间为电脑充电x单位的电量。
  2. 闪充:每单位时间为电脑充电4x单位的电量。

现在,所有电脑的电量都为零。小R希望使用闪充给所有电脑充满电,计算她需要的总充电时间。请保留结果的小数点后两位。

题目解析

  1. 每部电脑的初始电量为0。
  2. 有两种充电方式:普通充电(x)和闪充(4x)。
  3. 我们需要计算使用闪充给所有电脑充满电所需的总时间。

解题思路

  1. 计算每部电脑需要的充电时间

    • 对于每部电脑,其电池容量为ai​,使用闪充每单位时间充电4x单位,显而易见,每部电脑需要的充电时间为ai​/(4x)。
  2. 将所有电脑的充电时间求和,得到总充电时间

  3. 将总充电时间保留两位小数,并以字符串形式返回

代码

    # 初始化总充电时间为0
    total_time = 0.0
    
    # 遍历每部电脑,计算其充电时间并累加到总充电时间
    for battery in a:
        # 计算当前电脑的充电时间
        charge_time = battery / (4 * x)
        # 累加到总充电时间
        total_time += charge_time
    
    # 将总充电时间保留两位小数并转换为字符串
    result = f"{total_time:.2f}"
    
    return result

if __name__ == '__main__':
    print(solution(4, 1, [2, 3, 4, 5]) == '3.50')
    print(solution(3, 2, [4, 6, 8]) == '2.25')
    print(solution(2, 1, [10, 5]) == '3.75')

关键步骤

  1. 初始化总充电时间:使用一个浮点数变量total_time来存储总充电时间。
  2. 遍历每部电脑:使用for循环遍历列表a中的每个电池容量。
  3. 计算充电时间:对于每个电池容量,计算其充电时间并累加到total_time
  4. 格式化输出:使用f"{total_time:.2f}"将总充电时间保留两位小数并转换为字符串

知识点

在Python中,输出两位小数通常有以下几种方法:

1. 使用字符串格式化(str.format() 方法)

num = 3.14159
print("{:.2f}".format(num))

2. 使用 f-string(Python 3.6+)

num = 3.14159
print(f"{num:.2f}")

3. 使用 round() 函数

如果你只是想得到一个两位小数的数值,而不是格式化输出,可以使用 round() 函数。

num = 3.14159
print(round(num, 2))

4. 使用 % 操作符

这是一种较老的方法,但在一些旧代码中仍然可以看到。

python
num = 3.14159
print("%.2f" % num)

以上任何一种方法都可以让你在Python中输出两位小数。选择哪一种取决于你的Python版本和个人偏好。f-string是最新和最方便的方式,但在Python 3.5以下的版本中不可用。str.format() 方法在所有版本的Python中都可用。