充电总时间计算

118 阅读2分钟

问题描述

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

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

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


测试样例

样例1:

输入:n = 4 ,x = 1 ,a = [2, 3, 4, 5]
输出:'3.50'

样例2:

输入:n = 3 ,x = 2 ,a = [4, 6, 8]
输出:'2.25'

样例3:

输入:n = 2 ,x = 1 ,a = [10, 5]
输出:'3.75'

代码

def solution(n: int, x: int, a: list) -> str:

total_time = 0.0  # 初始化总充电时间

# 遍历每部电脑的电池容量
for battery_capacity in a:
    # 计算使用闪充充满电的时间
    time_needed = battery_capacity / (4 * x)
    total_time += time_needed  # 累加到总充电时间

# 返回格式化后的时间,保留两位小数
return f"{total_time:.2f}"

if name == 'main':

print(solution(4, 1, [2, 3, 4, 5]) == '3.50')  # 输出: True
print(solution(3, 2, [4, 6, 8]) == '2.25')      # 输出: True
print(solution(2, 1, [10, 5]) == '3.75')        # 输出: True

思路

方法

初始化总充电时间

-   使用一个浮点数变量 `total_time` 来记录为所有电脑充满电所需的总时间,初始值设为 `0.0`

遍历每部电脑的电池容量

-   使用一个 `for` 循环遍历整数列表 `a` 中的每个元素,每个元素代表一部电脑的电池容量。

计算每部电脑充满电所需的时间

-   对于每部电脑,计算其充满电所需的时间。由于闪充的速度是普通充电速度的 `4x` 倍,因此实际充电时间应为电池容量除以 `4x`-   使用表达式 `battery_capacity / (4 * x)` 来计算每部电脑充满电所需的时间,并将结果存储在变量 `time_needed` 中。

累加总充电时间

-   将每部电脑充满电所需的时间 `time_needed` 累加到总充电时间 `total_time` 中。

格式化并返回总充电时间

-   使用格式化字符串 `f"{total_time:.2f}"` 将总充电时间保留两位小数,并作为函数的返回值。

测试用例

  • 测试用例1n=4, x=1, a=[2, 3, 4, 5]

    • 计算过程:(2/4) + (3/4) + (4/4) + (5/4) = 0.5 + 0.75 + 1.0 + 1.25 = 3.5
    • 格式化后返回 '3.50',期望输出为 True
  • 测试用例2n=3, x=2, a=[4, 6, 8]

    • 计算过程:(4/(4*2)) + (6/(4*2)) + (8/(4*2)) = 0.5 + 0.75 + 1.0 = 2.25
    • 格式化后返回 '2.25',期望输出为 True
  • 测试用例3n=2, x=1, a=[10, 5]

    • 计算过程:(10/4) + (5/4) = 2.5 + 1.25 = 3.75
    • 格式化后返回 '3.75',期望输出为 True