程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。 出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。 比如: 1. 23再多一块钱就变为25; 2. 39再多一块钱变为50; 3. 399再多一块钱变为500; 小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。用js写
时间: 2023-12-31 15:05:49 浏览: 35
以下是一个简单的 JavaScript 函数,可以实现计费表的功能:
```javascript
function calculateFare(distance) {
let fare = 0;
let digits = distance.toString().split('');
for (let i = 0; i < digits.length; i++) {
if (digits[i] === '4') {
continue;
}
fare = fare * 10 + parseInt(digits[i]);
}
if (fare >= 399) {
fare = 500;
} else if (fare >= 39) {
fare = 50 * Math.ceil(fare / 50);
} else if (fare >= 23) {
fare = 25 * Math.ceil(fare / 25);
} else {
fare = 0;
}
return fare;
}
```
这个函数接受一个表示距离的数字作为参数,返回计算后的车费。首先,它将距离转换为数字数组,并遍历数组的每一个数字。如果遇到数字4,就跳过它。然后,根据计费规则计算车费,并返回结果。
例如,如果距离是23,那么计算出来的车费是25;如果距离是39,那么计算出来的车费是50;如果距离是399,那么计算出来的车费是500。
相关问题
程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。 出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。 比如: 1. 23再多一块钱就变为25; 2. 39再多一块钱变为50; 3. 399再多一块钱变为500; 用js写出原本价格
根据出租车司机的改装规则,我们可以编写一个 JavaScript 函数来计算原本的价格。该函数接受一个表示距离的数字作为参数,返回原本的价格。
以下是一个简单的 JavaScript 函数,可以实现计算原本价格的功能:
```javascript
function calculateOriginalFare(distance) {
let originalFare = 0;
let digits = distance.toString().split('');
for (let i = 0; i < digits.length; i++) {
originalFare = originalFare * 10;
if (digits[i] === '4') {
continue;
}
originalFare += parseInt(digits[i]);
}
return originalFare;
}
```
这个函数与上一个函数非常相似,不同之处在于它不考虑计费规则,而是直接计算原本的价格。它将距离转换为数字数组,并遍历数组的每一个数字。如果遇到数字4,就跳过它。然后,将非4的数字加到原本的价格中,最终返回结果。
例如,如果距离是23,那么计算出来的原本价格是23;如果距离是39,那么计算出来的原本价格是39;如果距离是399,那么计算出来的原本价格是399。
使用python写一段代码,问题如下:程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。比如:1. 23再多—块钱就变为25 ;2. 39再多一块钱变为50 ;3. 399再多一块钱变为500 ;小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。给出计费表的表面读数,返回实际产生的费用。输入只有一行,数字N,表示里程表的读数。( 1 <= N <= 888888888 )。输出—个数字,表示实际产生的费用。以回车结束。
以下是实现该功能的Python代码:
```python
def calculate_fee(num):
num_str = str(num)
num_len = len(num_str)
fee = 0
for i in range(num_len):
if num_str[i] == '4':
continue
power = num_len - i - 1
digit = int(num_str[i])
fee += digit * (10 ** power)
if digit >= 4:
fee += 10 ** power
return fee
num = int(input())
print(calculate_fee(num))
```
使用方法:
1. 将上述代码复制到 Python 环境中;
2. 输入计费表的表面读数 N;
3. 按回车键,程序会返回实际产生的费用。
例如,当输入 399 时,程序会返回 500,符合题意。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)