挑战:给出一个数字,计算出在美国足球中有多少唯一的,顺序独立的方法来达到这个数字的分数。
让我们看看在您喜欢的每种语言中都能使用多少个字符!通常的规则适用。输入和输出的方式是自然的,你的语言。
回想一下,在足球中得分的方法是安全(2分)、外场得分(3分)、触地得分(6分)、触地+额外得分(7分)和+2分转换(8分)。
例如,给定9作为输入,程序应该返回4,因为您可以得分:
注意,顺序并不重要。
发布于 2014-01-06 22:44:11
Length@IntegerPartitions[#,∞,{2,3,6,7,8}]&以前从未用Prolog写过任何东西,只是知道这个问题对它来说应该很好。
p(0,_,[]).
p(N,[H|T],O):- N>=H,p(N,T,O).
p(N,[H|S],[H|T]):- N>=H,M is N-H,p(M,[H|S],T).
f(N,C):- aggregate(count,X^p(N,[2,3,6,7,8],X),C).
?- f(9,C).
C = 4.发布于 2014-01-07 12:12:19
t=int(input())
from itertools import*
print len([a for a in chain(*(combinations_with_replacement([2,3,6,7,8],n) for n in range(t)))if sum(a)==t])https://codegolf.stackexchange.com/questions/17822
复制相似问题