编写一个北京地铁按公里计价的程序。计价规则为:6km(含)内3元;6~12km (含)4 元;12~22km(含)5元;22~32 km(含)6元;32km以上每加1元可乘坐20km,如图2-10 所示。
时间: 2024-09-06 20:01:10 浏览: 40
编写这样的程序通常会涉及一些条件判断和循环结构。以下是一个简单的Python示例,它能帮助用户输入起点到终点的距离,并计算出相应的费用:
```python
def calculate_fare(distance):
fare = 0
# 分段计费
if distance <= 6: # 6公里以内
fare = 3
elif 6 < distance <= 12: # 6至12公里
fare = 4
elif 12 < distance <= 22: # 12至22公里
fare = 5
else: # 超过22公里
additional_km = (distance - 22) / 20 # 每加1元对应20公里
fare = 6 + int(additional_km) # 向上取整到最近的元
return fare
# 用户输入距离
user_distance = float(input("请输入从出发点到目的地的距离(单位:公里):"))
fare = calculate_fare(user_distance)
print(f"从起点到终点的票价是:{fare}元")
#
相关问题
java编写一个北京地铁按公里计价的程序。计价规则为:6km(含)内3元;6~12km (含)4 元;12~22km(含)5元;22~32 km(含)6元;32km以上每加1元可乘坐20km,如图2-10 所示。
好的,我可以帮你构建一个简单的Java程序来模拟北京地铁按公里计费的过程。这是一个基础的控制台应用示例:
```java
import java.util.Scanner;
public class BeijingSubwayFareCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的乘车距离(单位:公里),输入0结束计费:");
double distance = scanner.nextDouble();
double fare = 0;
if (distance <= 6) {
fare = 3; // 6公里以内
} else if (distance <= 12) {
fare = 4; // 6到12公里
} else if (distance <= 22) {
fare = 5; // 12到22公里
} else if (distance <= 32) {
fare = 6; // 22到32公里
} else {
double extraDistance = distance - 32;
fare += 6; // 基础费用基础上加收额外费用
int additionalQuarters = (int) Math.ceil(extraDistance / 20); // 每加20km加收一元
for (int i = 0; i < additionalQuarters; i++) {
fare++;
}
}
System.out.printf("您的车票费用为%.2f元.\n", fare);
scanner.close();
}
}
```
当你运行这个程序,它会提示用户输入乘车的距离,然后计算并显示相应的费用。
计算轨道交通票价。某城市轨道交通实行按里程计价的多级票价,起步6km内每人次3元,6~12km每人次4元,12~32km每10km加1元,32km以上每20km加1元,票价不封顶。输入里程数km,显示对应票价p。
算法步骤:
1. 读取输入的里程数km。
2. 如果里程数小于等于6,则票价为3元。
3. 如果里程数大于6小于等于12,则票价为4元。
4. 如果里程数大于12小于等于32,按照每10km加1元计算票价。
5. 如果里程数大于32,按照每20km加1元计算票价。
6. 输出计算得到的票价p。
代码实现:
```python
km = float(input("请输入里程数(单位:km):"))
if km <= 6:
p = 3
elif km <= 12:
p = 4
elif km <= 32:
p = 4 + ((km - 12) // 10) * 1
else:
p = 6 + ((km - 32) // 20) * 1
print("票价为:{}元".format(p))
```