2024年华为OD机试真题-靠谱的车
华为OD机试真题-靠谱的车-2024年OD统一考试(D卷)
题目描述:
程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。
出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。
比如:
1. 23再多一块钱就变为25;
2. 39再多一块钱变为50;
3. 399再多一块钱变为500;
小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。
给出计费表的表面读数,返回实际产生的费用。
输入描述:
只有一行,数字N,表示里程表的读数。
(1<=N<=888888888)。
输出描述:
一个数字,表示实际产生的费用。以回车结束。
示例1
输入:
5
输出:
4
说明:
5表示计费表的表面读数。
4表示实际产生的费用其实只有4块钱。
示例2
输入:
17
输出:
15
说明:
17表示计费表的表面读数。
15表示实际产生的费用其实只有15块钱。
示例3
输入:
100
输出:
81
说明:
100表示计费表的表面读数。
81表示实际产生的费用其实只有81块钱。
解题思路:
比较常见的进制转换,使用循环和逻辑判断解决。
c++解法:
#include <iostream> #include <string> #include <cmath> using namespace std; // 函数来计算跳过所有4的实际读数 int actualCost(int n) { int result = 0; // 存储实际的读数 int multiplier = 1; // 数字的位置权重 while (n > 0) { int digit = n % 10; // 获取当前数字的最后一位 n /= 10; // 移除当前处理的最后一位 if (digit > 4) { digit--; // 如果数字大于4,由于跳过4,所以减1 } result += digit * multiplier; // 根
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
华为OD机试题库2024年 文章被收录于专栏
2024年OD统一考试(D卷),最新最完整题库。 收录130+道真题,提供解题思路,Java/Python/C++三种答案源码。