Hi, I wanted to calculate the factorial of a given number without using recursion. I came up with the following code, although it is not very elegant it works.
def factorial(*args): product = args[0] for item in args[1:]: product *= item return product number = int(raw_input('Enter value of number to compute factorial ')) seq = range(1,number + 1) if number <= 0: print -1 else: print factorial(*seq) When I change that code a bit to (In fact, this is what I started with, it almost drove me crazy trying to figure out what was wrong!) : def factorial(*args): temp = args[0] for item in args[1:]: product = temp * item return product number = int(raw_input('Enter value of number to compute factorial ')) seq = range(1,number + 1) if number <= 0: print -1 else: print factorial(*seq) ... it just echoes back the number you were prompted to enter. My confusion is, aren't the variables 'temp' and 'product' storing the same value ie "args[0]". So why would they return different values, the one with "temp" giving a wrong answer? Thanks! Kinuthia... _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor