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++三种答案源码。

全部评论
哈哈,机考遇到了这道原题
点赞
送花
回复 分享
发布于 06-30 09:04 江苏
南京od招聘,需要的联系我哈
点赞
送花
回复 分享
发布于 06-30 18:39 江苏
秋招专场
校招火热招聘中
官网直投

相关推荐

华为工作强度 292人发布 投递华为等公司10个岗位 我的求职思考
点赞 评论 收藏
分享
5 7 评论
分享
牛客网
牛客企业服务