新手程序员
1
2
3
4
5
6
|
def
factorial(x):
if
x
=
=
0
:
return
1
else
:
return
x
*
factorial(x
-
1
)
print
factorial(
6
)
|
第一年的刚学完Pascal的新手
1
2
3
4
5
6
7
8
|
def
factorial(x):
result
=
1
i
=
2
while
i <
=
x:
result
=
result
*
i
i
=
i
+
1
return
result
print
factorial(
6
)
|
第一年的刚学完C语言的新手
1
2
3
4
5
6
7
8
9
|
def
fact(x):
#{
result
=
i
=
1
;
while
(i <
=
x):
#{
result
*
=
i;
i
+
=
1
;
#}
return
result;
#}
print
(fact(
6
))
|
第一年刚学完SICP的新手
1
2
3
4
5
|
@tailcall
def
fact(x, acc
=
1
):
if
(x >
1
):
return
(fact((x
-
1
), (acc
*
x)))
else
:
return
acc
print
(fact(
6
))
|
第一年刚学完Python的新手
1
2
3
4
5
6
|
def
Factorial(x):
res
=
1
for
i
in
xrange
(
2
, x
+
1
):
res
*
=
i
return
res
print
Factorial(
6
)
|
爱偷懒的程序员
1
2
3
|
def
fact(x):
return
x >
1
and
x
*
fact(x
-
1
)
or
1
print
fact(
6
)
|
更懒的 Python 程序员
1
2
|
f
=
lambda
x: x
and
x
*
f(x
-
1
)
or
1
print
f(
6
)
|
Python 专家
1
2
3
4
|
import
operator as op
import
functional as f
fact
=
lambda
x: f.foldl(op.mul,
1
,
xrange
(
2
, x
+
1
))
print
fact(
6
)
|
插播福利
1.近期整理了20G资源,包含产品/运营/测试/程序员/市场等,互联网从业者【工作必备干货技巧、行业专业书籍、面试真题宝典等】,获取方式:
微信扫码关注公众号“非典型互联网”,转发文章到朋友圈,截图发至公众号后台,即可获取干货资源链接;
2.互联网人交流群:
关注公众号“非典型互联网”,在公众号后台回复“入群”,人脉共享,一起交流;
Python 黑客
1
2
3
4
5
6
|
import
sys
@tailcall
def
fact(x, acc
=
1
):
if
x:
return
fact(x.__sub__(
1
), acc.__mul__(x))
return
acc
sys.stdout.write(
str
(fact(
6
))
+
'\n'
)
|
专家级程序员
1
2
3
|
import
c_math
fact
=
c_math.fact
print
fact(
6
)
|
英语系的专家级程序员
1
2
3
|
import
c_maths
fact
=
c_maths.fact
print
fact(
6
)
|
Web 设计者
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
def
factorial(x):
#-------------------------------------------------
#--- Code snippet from The Math Vault ---
#--- Calculate factorial (C) Arthur Smith 1999 ---
#-------------------------------------------------
result
=
str
(
1
)
i
=
1
#Thanks Adam
while
i <
=
x:
#result = result * i #It's faster to use *=
#result = str(result * result + i)
#result = int(result *= i) #??????
result
str
(
int
(result)
*
i)
#result = int(str(result) * i)
i
=
i
+
1
return
result
print
factorial(
6
)
|
Unix 程序员
1
2
3
4
|
import
os
def
fact(x):
os.system(
'factorial '
+
str
(x))
fact(
6
)
|
Windows 程序员
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
NULL
=
None
def
CalculateAndPrintFactorialEx(dwNumber,
hOutputDevice,
lpLparam,
lpWparam,
lpsscSecurity,
*
dwReserved):
if
lpsscSecurity !
=
NULL:
return
NULL
#Not implemented
dwResult
=
dwCounter
=
1
while
dwCounter <
=
dwNumber:
dwResult
*
=
dwCounter
dwCounter
+
=
1
hOutputDevice.write(
str
(dwResult))
hOutputDevice.write(
'\n'
)
return
1
import
sys
CalculateAndPrintFactorialEx(
6
, sys.stdout, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
公司里的程序员
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
def
new(
cls
,
*
args,
*
*
kwargs):
return
cls
(
*
args,
*
*
kwargs)
class
Number(
object
):
pass
class
IntegralNumber(
int
, Number):
def
toInt(
self
):
return
new (
int
,
self
)
class
InternalBase(
object
):
def
__init__(
self
, base):
self
.base
=
base.toInt()
def
getBase(
self
):
return
new (IntegralNumber,
self
.base)
class
MathematicsSystem(
object
):
def
__init__(
self
, ibase):
Abstract
@
classmethod
def
getInstance(
cls
, ibase):
try
:
cls
.__instance
except
AttributeError:
cls
.__instance
=
new (
cls
, ibase)
return
cls
.__instance
class
StandardMathematicsSystem(MathematicsSystem):
def
__init__(
self
, ibase):
if
ibase.getBase() !
=
new (IntegralNumber,
2
):
raise
NotImplementedError
self
.base
=
ibase.getBase()
def
calculateFactorial(
self
, target):
result
=
new (IntegralNumber,
1
)
i
=
new (IntegralNumber,
2
)
while
i <
=
target:
result
=
result
*
i
i
=
i
+
new (IntegralNumber,
1
)
return
result
print
StandardMathematicsSystem.getInstance(new (InternalBase, new (IntegralNumber,
2
))).calculateFactorial(new (IntegralNumber,
6
))
|
摘自:来源
作者:陈皓,博客地址:https://coolshell.cn/articles/18190.html