Skip to content

Instantly share code, notes, and snippets.

@prelongs
Created March 21, 2014 03:37
Show Gist options
  • Save prelongs/9679039 to your computer and use it in GitHub Desktop.
Save prelongs/9679039 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# Author: kangkang <[email protected]> 2011
# Licence: GPLv3
import sys
class Res():
def __init__(self):
self.result = []
def add(self, value, offset):
if len(self.result) < (len(str(value))+offset):
zfill = len(str(value))+offset - len(self.result)
for i in range(zfill):
self.result.append(0)
for i in range(len(str(value))):
r = int(str(value)[::-1][i])+self.result[i+offset]
self.result[i+offset] = r%10
if r >= 10:
self.add(1,offset+i+1)
def get(self):
return self.result
if __name__ == "__main__":
n=int(sys.argv[1])
res = Res()
res.add(1,0)
for i in range(n)[1:]:
t = []
for offset in range(len(res.get())):
t.append((res.get()[offset]*i, offset))
for k,o in t:
res.add(k,o)
result = [str(x) for x in res.get()]
result.reverse()
r = int(''.join(result))
print(r)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment