前几天,当我和2个室友、9个AI车手和我一起参加大奖赛时,一个有趣的问题出现了。
我们扪心自问:在N次比赛之后,第一名和最后一名(第一名和第十二名)之间的差距有多大?
在用户mlk回答了最小差的分配问题后,这个代码高尔夫挑战发生在我身上。
马里奥卡丁车比赛由12名车手组成,他们在每一场比赛中都会得到这个1索引数组:[15, 12, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0]
所代表的分数。
在大奖赛中,每一位车手从每一场比赛中得到的分数被简单地加在一起,形成最后的积分分布。在最后一个点分布中,最低点和最高点之间的差异称为点差(唉,位置#1和#12之间)。
您的任务是编写一个程序,该程序以竞赛数N (1 <= N <= 32
)作为输入,并输出相应的点差。
前13个正确的输入和输出见下文。您会发现,在特殊情况N = 1
和N = 2
之后,如果N
可除以12,则正确的答案是0
,如果不能,则为1
。
由于对每个自然数正确地定义了期望的输出,下面是输入/输出示例,直到上面描述的重复模式开始:
1 -> 15
2 -> 4
3 -> 1
4 -> 1
5 -> 1
6 -> 1
7 -> 1
8 -> 1
9 -> 1
10 -> 1
11 -> 1
12 -> 0
13 -> 1
这是代码高尔夫,所以最短的答案字节赢!
标准漏洞应用。
发布于 2021-05-03 08:40:14
n=>14/n**n+1^n%12<1
我们计算:
\left\lfloor\frac{14}{n^n}+1\right\rfloor
\lfloor 14/1+1\rfloor=15
表示n=1
,\lfloor 14/4+1 \rfloor=4
表示n=2
,1
表示n>2
。
然后,我们使用1
if n \bmod 12=0
对结果进行异或。
发布于 2021-05-03 07:37:17
https://codegolf.stackexchange.com/questions/224992
复制相似问题