偷袭数字挑战
我想知道在1到50,000之间有多少个蛇行数字?
在此游戏中,蛇行数字是指可以通过向上,向下,向左或向右移动一个键在传统数字键盘(下面的格式)上键入的数字。
7 8 9
4 5 6
1 2 3
0
例如,如果您以数字5开头,则可以选择4、6、8或2作为下一个有效动作-但是,由于7、3、9和1与当前键成对角线,因此它们是禁止进入的。因此,如果您有5个,然后是2个,则下一个可行的键选择又是0、1、3或5。
在此Code Golf练习中,您将输出一个列表,其中包含1到50k之间的所有正数,以及所有符合条件的数的最终计数。
规则
- 数字不能以零开头。
- 数字必须是整个正整数。
- 从左到右读取的每个连续数字必须在数字键盘周围“蛇行”。
- 蛇不能斜跨钥匙穿过
- 可以从数字1和2访问数字0
- 数字不能配对(例如:22)
有效的蛇行号码示例:
12369
45201
1254
10102
1
12
987
无效数字的例子
1238 - 8 is not connected
0001 - multiple leading 0s
0101 - leading 0
159 - snake cannot travel diagonally
4556 - duplicate 5
按照普通的Code Golf,目标是最少字节!
根据我的数学和规则,您的列表中应该有670个有效的蛇行编号,最后一个数字是670个本身。
