已知a1a2…an 是 1∼n 的全排列中字典序第 k 个排列。请你判断一共有多少个整数 x 同时满足以下所有条件:1≤x≤nx 的十进制表示不含 4 和 7 以外的数字。ax 的十进制表示不含 4 和 7 以外的数字。
要求满足条件的整数x,首先要满足x的十进制表示不含4和7以外的数字。可以通过将x转换为字符串,然后检查字符串中是否只包含4和7来判断。
其次,要满足ax的十进制表示不含4和7以外的数字,同样可以通过将ax转换为字符串,然后检查字符串中是否只包含4和7来判断。
接下来,我们可以遍历1到n的所有整数,对每个整数进行判断,如果满足条件则计数器加1。
具体实现如下:
def count_numbers(n, k):
count = 0
for x in range(1, n + 1):
x_str = str(x)
ax_str = str(a[k])
if set(x_str) <= {'4', '7'} and set(ax_str) <= {'4', '7'}:
count += 1
return count
其中,n表示全排列的长度,k表示字典序第k个排列。
注意:在实际使用中,需要根据实际情况调整循环的范围和计数器的初始值。
原文地址: https://www.cveoy.top/t/topic/h5Lt 著作权归作者所有。请勿转载和采集!