René 'Necoro' Neumann ha scritto:
Am 19.05.2010 21:58, schrieb superpollo:
... how many positive integers less than n have digits that sum up to m:
In [197]: def prttn(m, n):
tot = 0
for i in range(n):
s = str(i)
sum = 0
for j in range(len(s)):
sum += int(s[j])
if sum == m:
tot += 1
return tot
.....:
In [207]: prttn(25, 10000)
Out[207]: 348
any suggestion for pythonizin' it?
bye
An idea would be:
def prttn(m, n):
... return sum(1 for x in range(n) if sum(map(int, str(x))) == m)
TypeError: 'int' object is not callable
on 2.5.4
A small oneliner :)
(I first had "return len([x for x in ...])" but the above avoids
creating an intermediate list)
- René
--
http://mail.python.org/mailman/listinfo/python-list