Python靠谱的车

360影视 2025-02-24 19:59 1

摘要:def calculate_actual_cost(N):actual_cost = 0power = 1 # 当前位的权重(1, 10, 100, ...)while N > 0:digit = N % 10 # 取出当前位的数字if digit > 4:d

def calculate_actual_cost(N):actual_cost = 0power = 1 # 当前位的权重(1, 10, 100, ...)while N > 0:digit = N % 10 # 取出当前位的数字if digit > 4:digit -= 1 # 跳过数字 4actual_cost += digit * powerpower *= 9 # 每处理一位,权重乘以 9N //= 10 # 去掉已处理的位return actual_cost# 输入处理def main:N = int(input("请输入计费表的表面读数:"))result = calculate_actual_cost(N)print(result)# 运行主函数if __name__ == "__main__":main问题分析

计费表跳过了所有包含数字 4 的读数。

需要将表面读数 NN 转换为实际费用,即计算在跳过所有包含 4 的数字后,NN 对应的实际数字。

算法选择

将问题转化为一个进制转换问题,其中数字 4 被跳过。

可以将表面读数 NN 看作一个“9 进制”数,但跳过数字 4。

实现步骤

遍历 NN 的每一位数字。

对于每一位数字,如果大于 4,则减去 1(因为跳过了 4)。

将处理后的数字转换为实际费用。

来源:小龙马车讯分享

相关推荐