出租车计费 、靠谱的车

简介: 出租车计费 、靠谱的车

题目描述:出租车计费 、靠谱的车

程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。


出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。


比如:


23再多一块钱就变为25;

39再多一块钱变为50;

399再多一块钱变为500;

小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。


给出计费表的表面读数,返回实际产生的费用。

输入描述

只有一行,数字N,表示里程表的读数。

(1<=N<=888888888)。

输出描述

一个数字,表示实际产生的费用。以回车结束。

用例

输入 5

输出 4

说明 5表示计费表的表面读数。4表示实际产生的费用其实只有4块钱。

输入 17

输出 15

说明 17表示计费表的表面读数。15表示实际产生的费用其实只有15块钱。

输入 100

输出 81

说明 100表示计费表的表面读数。81表示实际产生的费用其实只有81块钱。

解题思路

计费表从1开始计数,直到3,然后跳过4,继续从5计数。这意味着计费表上的每一位数字实际上只有9种可能的值:0, 1, 2, 3, 5, 6, 7, 8, 9(跳过了4)。因此,这个计费表实际上是在使用一个基数为9的数制系统。


输入:5

输出:4


输入:17

输出:15


输入:100

输出:81


输入:27

输出:24


输入:58

输出:43

通过将表面读数视为9进制数,并将其转换为10进制数,同时考虑到跳过的4,我们可以得到实际产生的费用。

代码

// 出租车计费/靠谱的车
#include <stdio.h>
#include <string.h>

int main() {
    char line[10];
    scanf("%s", line); // 读取输入的表面读数

    int correct = 0;           // 初始化实际产生的费用
    int length = strlen(line); // 获取输入字符串的长度

    // 遍历读数的每一位数字
    for (int i = 0; i < length; i++) {
        int digit = line[i] - '0'; // 将字符转换为数字

        // 如果数字大于4,则需要减1,因为跳过了数字4
        if (digit > 4) {
            digit--;
        }

        correct = correct * 9 + digit; // 更新实际产生的费用
        // 初始一定是0*9+最高位数字,接着最高位数字乘9+次高位(处理之后的次高位)
    }

    // 输出实际产生的费用
    printf("%d\n", correct);

    return 0;
}
相关文章
|
存储
Vue3 实现 PDF 文件在线预览功能
Vue3 实现 PDF 文件在线预览功能
2507 0
|
5月前
|
存储 机器学习/深度学习 算法
|
11月前
|
存储 消息中间件 小程序
转转平台IM系统架构设计与实践(一):整体架构设计
本文描述了转转IM为整个平台提供的支撑能力,给出了系统的整体架构设计,分析了系统架构的特性。
303 10
|
10月前
|
机器学习/深度学习 编解码 知识图谱
YOLOv11改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
YOLOv11改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
506 0
YOLOv11改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
|
自然语言处理 搜索推荐 BI
有哪些好用的待办事项提醒软件?主流7款大对比
随着生活和工作节奏的加快,待办事项提醒软件成为了我们的“救命神器”。本文评测了7款主流的待办事项软件:板栗看板、Todoist、Microsoft To Do、TickTick、Google Keep、Any.do 和滴答清单,从功能、适用场景和优缺点等方面进行对比,帮助你找到最适合自己的那一款。无论是团队协作、个人时间管理还是生活与工作的平衡,总有一款能满足你的需求。
5689 1
|
运维 安全 网络安全
没有谁不可或缺,宝塔的3个替代品
随着软件数量和复杂度增加,宝塔面板因用户友好的界面和丰富功能成为首选。但技术进步和开源社区发展催生了Websoft9、FastPanel和Urlos等新工具,它们在特定领域提供了与宝塔面板相媲美或更优的解决方案。本文介绍这三款工具的特点,旨在为用户提供更多选择参考。
1135 0
没有谁不可或缺,宝塔的3个替代品
|
存储 人工智能 异构计算
清华&哈工大提出极限压缩方案:1bit量化,能力同时保留83%
【2月更文挑战第22天】清华&哈工大提出极限压缩方案:1bit量化,能力同时保留83%
390 1
清华&哈工大提出极限压缩方案:1bit量化,能力同时保留83%
|
存储 运维 负载均衡
Heartbeat+Nginx实现高可用集群
通过Heartbeat与Nginx的结合,您可以建立一个高可用性的负载均衡集群,确保在服务器故障时仍能提供无中断的服务。这种配置需要仔细的计划和测试,以确保系统在故障情况下能够正确运行。
217 2
【二分查找】左侧边界、右侧边界、查找值
【二分查找】左侧边界、右侧边界、查找值
|
Kubernetes 安全 Serverless
为什么 Higress 是 Knative 入口网关的最佳实践?
本文介绍了 Knative 网络层原理,Higress 对接 Knative 服务的两种方式,并给出 Higress 成为 Knative 入口网关的最佳实践。