Ritwik Raghav wrote: > I joined the topcoder community tomorrow and tried solving the > PersistentNumber problem: > "Given a number x, we can define p(x) as the product of the digits of x. > We can then form a sequence x, p(x), p(p(x))... The persistence of x is > then defined as the index (0-based) of the first single digit number in > the sequence. For example, using 99, we get the sequence 99, 9*9 = 81, 8*1 > = 8. Thus, the persistence of 99 is 2. You will be given n, and you must > return its persistence." > > It asks to define a function def getPersistence(self, n). I solved the > problem in IDLE. My code is: > > def getPersistence(n,count = 0): > product = 1 > if len(str(n)) == 1: > return count > else: > a = str(n) > for i in range(len(a)): > product *= int(a[i]) > count += 1 > return getPersistence(product,count) > > Now plz help me to convert the above code in specified format. Or help me > understand how to recreate the function as specified.
The "topcoder" site is probably infested with the world view of Java where every function is a method inside a class. You may have to wrap your code into something like class PersistentNumber: def getPersistence(self, n, count=0): ... # your code with a minor change (*) (*) Inside the method the recursive call becomes self.getPersistence(product, count) instead of just getPersistence(product, count) _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor