此题n的数据范围最大为7,也就是是说最多有8个数位,在最多选取m个数位的限制下,所有能组合出来的数是有限的,我们可以直接进行枚举,首先在n个数位中枚举选取m个数位的所有情况,用二进制的方式选取,在选取完m个数位后进行dfs,将m个数位所组合出来的所有数字枚举出来,统计有多少个数字大于sum即可
def permute(nums):#进行全排列
ans = []
n = len(nums)
小红喜欢数数,他想知道在由0到n这些数字组成的m位数中(每个数最多只能用一次),有多少个是大于k的。
第一行输入三个整数n,m,k。
(1≤n≤7,1≤m≤n+1,0≤k≤108)
输出一个整数表示答案。
输入
5 1 0
输出
5
说明
大于0的是1,2,3,4,5这5个数
输入
4 2 35
输出
4
说明
大于35的是40,41,42,43这4个数。
注意,由于每个数不能重复使用,所以无法拼出44。