【华为OD机试真题】 出租车计费 、靠谱的车

 
 程序员小明打了一辆出租车去上班,出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大,出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常   比如: 1、23再多一块钱就变为25; 2、39再多一块钱变为50; 3、399再多一块钱变为500;   小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋,给出计费表的表面读数,返回实际产生的费用 
 

package main

import (
	"fmt"
)

func multiplyByPowerTen(num, n int) int {
	if n == 0 {
		return num
	}
	powerOfTen := 1
	for i := 1; i <= n; i++ {
		powerOfTen *= 10
	}
	return powerOfTen * num
}

func main() {
	//里程表读数
	var n string
	//fmt.Println("请输入表显数值")
	fmt.Scanln(&n)
	byteSlice := []byte(n)
	intSlice := make([]int, len(n))
	for i, b := range byteSlice {
		intSlice[i] = int(b - '0')
	}
	//fmt.Println(intSlice)
	realPrice := 0
	for _, v := range intSlice {
		if v > 4 {
			v = v - 1
		}
		realPrice = realPrice*9 + v
	}

	fmt.Println(fmt.Sprintf("%d", realPrice))

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值