gpt4 book ai didi

swift - 不要给我五个挑战—— swift

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:45 26 4
gpt4 key购买 nike

在 codewars.com 上,我真的很纠结这个套路。我是一个完全的初学者,所以我不想要解决方案,但如果有人可以将我推向正确的方向。

“在这个 kata 中,您将获得一个区域的开始编号和结束编号,并且应该返回除其中带有 5 的数字之外的所有数字的计数。开始和结束编号都包括在内!例子:1,9 -> 1,2,3,4,6,7,8,9 -> 结果 8
4,17 -> 4,6,7,8,9,10,11,12,13,14,16,17 -> 结果 12"

到目前为止,我已经试过了,但我不知道是否有办法搜索所有包含 5 的数字。有没有办法像我们在线上的“*”那样添加一个通用的字符搜索?

func dontGiveMeFive(_ start: Int, _ end: Int) -> Int {
var rez = 0
var ints = [String]()

for i in start...end {
if ints.contains("5") {
rez += 1
}
}

return rez
}

注意:解决示例并不难,但是当您考虑一些不能被 5 整除的数字时会出现问题。例如 51、52、53....或 425980 :)

最佳答案

有两种不同的方法来进行检查 - 使用字符串转换和使用数学。

使用数学的方法使用较少的 CPU 能力,但使用字符串的方法通常需要较少的输入。

使用数学方法执行这两个步骤,直到被检查的数字减少到零:

  • 检查最后一位数字是否为五;如果是,返回真
  • 去掉最后一位

要检查 Int n 的最后一位十进制数字是否为 5,请使用 n % 10 == 5 表达式。运算符%返回n除以10后的余数,即n最后一位的数值。

要删除最后一位数字,请使用 n/= 10。因为整数除法会截断任何小数部分。

关于swift - 不要给我五个挑战—— swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com