python题目
题目描述根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。
输入
输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。
输出
输出一行,包含一个整数,表示邮费。
想知道这个题怎么写,如果不用ceil w, n = input().split()
w=int(w)
m=0
if w<=1000:
m=8
else:
m+=w//500+bool(w%500)
if n=='y':
m+=5 这个问题可以通过整数运算来解决,不需要使用ceil函数。下面是一个使用Python编写的示例代码:
def calculate_postage(weight, is_expedited):
base_fee = 8
overweight_fee = 0
expedited_fee = 5 if is_expedited == 'y' else 0
if weight > 1000:
overweight_weight = weight - 1000
overweight_fee = (overweight_weight + 499) // 500 * 4
postage = base_fee + overweight_fee + expedited_fee
return postage
# 输入
input_str = input()
weight_str, is_expedited = input_str.split()
weight = int(weight_str)
# 计算邮费
postage = calculate_postage(weight, is_expedited)
# 输出
print(postage)
这个代码中,我们定义了一个calculate_postage函数,该函数接受重量和是否加急作为输入参数。
我们首先计算基本费用、超重费用和加急费用。对于超重费用的计算,我们使用整数除法//来向上取整,而不需要使用ceil函数。
最后,我们将这三个费用相加并返回邮费。 isdkz 发表于 2023-3-24 20:05
这个问题可以通过整数运算来解决,不需要使用ceil函数。下面是一个使用Python编写的示例代码:
没必要这么复杂吧…这只是道简单的算术题 # 读取输入
weight, is_express = input().split()
weight = int(weight)
# 计算邮费
basic_fee = 8
if weight <= 1000:
total_fee = basic_fee
else:
extra_weight = weight - 1000
if extra_weight % 500 == 0:
extra_fee = (extra_weight // 500) * 4
else:
extra_fee = ((extra_weight // 500) + 1) * 4
total_fee = basic_fee + extra_fee
if is_express == 'y':
total_fee += 5
# 输出结果
print(total_fee)
歌者文明清理员 发表于 2023-3-24 19:55
感觉挺好的思路,就是没写好,但是思路是最好的,想给最佳的,就是有点瑕疵,代码没写完整
页:
[1]