首页 > 试题广场 >

下列Python程序的运行结果是( ) def P(x):

[单选题]
下列Python程序的运行结果是( )
def P(x):
    y = reduce(lambda x, y: x * y, map(int, str(x)))
    return y and not x % y
def Q(x):
    return P(x) and P(x + 1)
print sum(Q(x) for x in xrange(2019))

  • 11
  • 12
  • 13
  • 14
P(x)为1的条件:计算数字x各位数的乘积,乘积不为0且x能够整除该乘积。
只有x和x+1的P(x)均满足上述条件Q(x)才为1,其他情况都是0,在加法中不考虑。
满足条件的x有:1到8,11,111,1111,1112,1115,总共为8+5=13
发表于 2020-03-21 20:34:27 回复(2)

reduce() 函数会对参数序列中元素进行累积。

reduce(function, iterable[, initializer])


函数将一个数据集合iterable中的所有数据进行函数 function中的操作,用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

y = reduce(lambda x, y: x * y, map(int, str(x)))
y返回x作为字符串的各个位上数字累乘的结果

P(x)返回乘积y不为0且x能够整除该乘积y的逻辑判断值
Q(x)返回P(x)∧P(x+1)的逻辑判断值
发表于 2020-06-30 12:26:22 回复(0)
&

1-8,除以本身

11能整除1 12能整除2

111和1111同理

1112整除2,1113整除3

1115整除5,1116整除6

1 2 3 4 5 6 7 8 11 111 1111 1112 1115共13个

发表于 2020-04-08 19:38:04 回复(0)
13个
发表于 2020-09-10 18:45:15 回复(0)