美文网首页
华为OD机试真题2023_Swift_100_货币单位换算

华为OD机试真题2023_Swift_100_货币单位换算

作者: 雾中探雪 | 来源:发表于2023-03-05 08:58 被阅读0次
// 货币单位换算
    func HW2023010() {
        var inputArr: [String] = []
        // 测试用例
//        inputArr = ["100CNY"]                     // 10000
//        inputArr = ["3000fen"]                    // 3000
//        inputArr = ["123HKD"]                     // 10000
//        inputArr = ["20CNY53fen", "53HKD87cents"] // 6432
        // 开始代码
        let _ = readLine()
        while let line = readLine() {
            inputArr.append(line)
        }
        var res: Double = 0
        for str in inputArr {
            var temp = ""
            var count: Double = 0 // 每次输入的货币数初始值为0
            for c in str {
                if c.isNumber { // 如果当前字符是数字,则添加到字符串temp
                    temp.append(String(c))
                }else {
                    count += huanSuan(temp, c) // 将数字转换成fen并累加
                    temp = "" // 转换完成将字符串temp置空,这样再经过后面字母字符时就不进行转换了
                }
            }
            res += count // 将每次输入的货币转换成fen,并累加
        }
        print(Int(floor(res))) // 向下取整打印
    }
    // numStr:具体钱数或者空串,str:当前正在遍历的字符
    func huanSuan(_ numStr: String, _ str: Character) -> Double {
        var tempCount: Double = 0
        let num = Double(numStr) ?? 0
        if num == 0 { // 表示numStr为空串,说明正在遍历字母不需要转换
        }else if str == "C" {
            tempCount += num * 100
        }else if str == "H" {
            tempCount += num * 10000 / 123
        }else if str == "J" {
            tempCount += num * 10000 / 1825
        }else if str == "E" {
            tempCount += num * 10000 / 14
        }else if str == "G" {
            tempCount += num * 10000 / 12
        }else if str == "f" {
            tempCount += num * 1
        }else if str == "c" {
            tempCount += num * 100 / 123
        }else if str == "s" {
            tempCount += num * 100 / 1825
        }else if str == "e" {
            tempCount += num * 100 / 14
        }else if str == "p" {
            tempCount += num * 100 / 12
        }
        return tempCount
    }

相关文章

  • 华为OD机试-磁盘容量排序

    今天参加华为OD机试,总共有两道机试题,每道题200分,总共400分,华为那边要求是两道题全过。第一道题是磁盘容量...

  • 华为OD机试 :找终点

    1.题目大意 给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数。第一步必...

  • 华为OD机试,压缩报文还原

    ?题目描述 为了提升数据传输的效率,会对传输的报文进行压缩处理。 输入一个压缩后的报文,请返回它解压后的原始报文。...

  • 浙江选考信息技术必考点 | 存储容量

    考点梳理 1、 单位换算 2、 存储容量计算公式 考频统计 真题详解

  • 小学数学重点基础知识:单位换算公式汇总

    单位换算题是小学数学学习重点之一。单位换算在计算、填空、选择、应用题都会涉及到,如果孩子对单位换算记忆不够深刻,总...

  • 华为od机试凉经 2021-04-02

    一星题 加密 怎么写都只能通过20%的用例,也不知道是我理解错了,还是速度上不去。 题的大意是:第一行输入一个数字...

  • 华为机试2017

    简易压缩算法:将全部由小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为整个连续个数加该字母,其他部...

  • 实习机试-华为

    昨晚收到面试邀请后就开始临阵磨枪,加上今天总共在剑指offer上刷了十几道题吧。晚上参加华为的机试,2个小时3个题...

  • 单位换算

    一、分类 1、长度单位、面积单位、体积(容积)单位 巧记:记长度单位,平方零翻倍,立方零3倍 特殊:1公顷=100...

  • 单位换算

    张长占 济南市民生大街小学 谈话导入:这几年学了哪些单位换算? 生:时间,长度,体积,容积… 想想单位换算你们都是...

网友评论

      本文标题:华为OD机试真题2023_Swift_100_货币单位换算

      本文链接:https://www.haomeiwen.com/subject/nyljldtx.html