Math 这些测试用例正确吗?
在处理google foobar问题时,我遇到了一个问题,提示如下: 布尔教授,一位臭名昭著的疯狂科学家,刚刚发现他珍贵的兔子标本逃走了!他急忙打电话给实验室的保安人员。然而,兔子逃犯黑客的手机,以加快她的逃跑!她留下了一个带有以下线索的标志:拨出的每个数字都必须是骑士棋子从最后拨出的数字中可以到达的数字——也就是说,你必须在一个方向上精确移动2个空格,然后在垂直方向上移动1个空格才能拨出下一个正确的数字。你可以拨打任何你想拨打的号码,但随后的号码必须遵守骑士的移动规则 实验室电话号码按以下方式排列:第一行1、2、3;第二排4、5、6;第三排7、8、9;和空白,0,第四行空白Math 这些测试用例正确吗?,math,probability,Math,Probability,在处理google foobar问题时,我遇到了一个问题,提示如下: 布尔教授,一位臭名昭著的疯狂科学家,刚刚发现他珍贵的兔子标本逃走了!他急忙打电话给实验室的保安人员。然而,兔子逃犯黑客的手机,以加快她的逃跑!她留下了一个带有以下线索的标志:拨出的每个数字都必须是骑士棋子从最后拨出的数字中可以到达的数字——也就是说,你必须在一个方向上精确移动2个空格,然后在垂直方向上移动1个空格才能拨出下一个正确的数字。你可以拨打任何你想拨打的号码,但随后的号码必须遵守骑士的移动规则 实验室电话号码按以下方式
1 2 3
4 5 6
7 8 9
0
例如,如果您刚刚拨打了1,则下一个号码必须是6或8。如果你刚刚拨了6,下一个号码必须是1或7
布尔教授想让你知道在这种情况下他可以拨打多少不同的电话号码。编写一个名为answer(x,y,z)的函数,该函数计算一个人可以拨打的电话号码,这些电话号码以数字x开头,以数字y结尾,总共由z个数字组成。将此数字输出为表示以10为基数的数字的字符串
x和y将是0到9之间的数字。z将介于1和100之间,包括在内
测试用例
投入:
(int)x=6
(int)y=2
(int)z=5
输出:
(字符串)“6”
投入:
(int)x=1
(int)y=5
(int)z=100
输出:
(字符串)“0”
投入:
(int)x=3
(int)y=7
(int)z=1
输出:
(字符串)“0”
我觉得第一个测试用例是错误的,因为在画出决策树之后,我找到的唯一可能的数字是61672、67272、67292、67672,也就是四个。
这个问题是否有我误解或遗漏的地方?我不认为测试用例是错误的,但是 如果你刚刚拨了6,下一个号码必须是1或7 这是错误的。如果不能从6到0,那么这个问题就没有任何意义。至于你的评论,空格不是有效的移动,但这与6->0有效有什么关系
1 2 3
4 5 6
7 8 9
0
显然,6->0是一个有效的移动,不涉及空格。您错过了60492和60672I,因为问题说明“如果您刚刚拨打了6,下一个号码必须是1或7”,空格将不被视为有效移动。问题描述包含错误。如果你刚刚拨了6,下一个号码可以是1、7或0。