我想将这个javascript转换为swift,这意味着要解决编码测试。算法计数到一个数字并在循环时跳过特定数字。
酒店有300个房间,每个房间都有一个从001开始的三位数字。但是,在任何房间号码的任何地方都没有使用数字2和5。第100个房间的房间号码是多少?
JavaScript的
var currentNumber = 1, var n = 0;
while (currentNumber <= 100) {
n++;
if (n.toString().search(/[25]/) == -1)
currentNumber++
}
console.log(n);
快速尝试
var currentRoom = 1
var n = 0
while currentRoom <= 100 {
n += 1
if n. // don't know the Swift equivalent methods.
}
编辑:除了使用Swift的重复语法接受的答案之外,我还能够编写另一个解决方案。
var roomNumber = 1, x = 0
repeat {
x += 1
if String(x).contains("2") || String(x).contains("5") {
continue
}
roomNumber += 1
} while roomNumber <= 100
print(x)
var currentRoomNo = 1
var n = 0
while currentRoomNo <= 100 {
n += 1
if String(n).contains("2") || String(n).contains("5") {
continue
}
currentRoomNo += 1
}
print(n)