我想将此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)
答案 0 :(得分:1)
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)