File tree Expand file tree Collapse file tree 2 files changed +61
-0
lines changed
Expand file tree Collapse file tree 2 files changed +61
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ def ack (m ,n ):
3+ """Return Ackerman number"""
4+ if m == 0 :
5+ return n + 1
6+ if n == 0 :
7+ return ack (m - 1 , 1 )
8+ return ack (m - 1 , ack (m , n - 1 ))
9+
10+ if __name__ == '__main__' :
11+ assert ack (0 ,4 ) == 5
12+ assert ack (1 ,4 ) == 6
13+ assert ack (0 ,0 ) == 1
14+ assert ack (2 ,2 ) == 7
15+ assert ack (3 ,4 ) == 125
16+ assert ack (4 ,0 ) == 13
17+ assert ack (3 ,2 ) == 29
18+
19+ print "All Tests Pass"
Original file line number Diff line number Diff line change 1+
2+ def fibonacci (n ):
3+ """Return Fibonacci number"""
4+ if n <= 1 :
5+ return n
6+ else :
7+ return fibonacci (n - 1 ) + fibonacci (n - 2 )
8+
9+ def lucas (n ):
10+ """Return Lucas number"""
11+ if n == 0 :
12+ return 2
13+ if n == 1 :
14+ return 1
15+ return lucas (n - 1 ) + lucas (n - 2 )
16+
17+ def sum_series (n , x = 0 , y = 1 ):
18+ """Return either fibonacci or lucas numbers"""
19+ if x == 0 and y == 1 :
20+ return fibonacci (n )
21+ elif x == 2 and y == 1 :
22+ return lucas (n )
23+ else :
24+ return "Other Series"
25+
26+ if __name__ == '__main__' :
27+ """Test internal assertions about function calls"""
28+ assert fibonacci (6 ) == 8
29+ assert fibonacci (3 ) == 2
30+ assert fibonacci (30 ) == 832040
31+
32+ assert lucas (3 ) == 4
33+ assert lucas (5 ) == 11
34+ assert lucas (8 ) == 47
35+ assert lucas (12 ) == 322
36+
37+ assert sum_series (3 ) == 2
38+ assert sum_series (6 ) == 8
39+
40+ assert sum_series (3 , 2 , 1 ) == 4
41+ assert sum_series (5 , 2 , 1 ) == 11
42+ assert sum_series (8 , 2 , 1 ) == 47
You can’t perform that action at this time.
0 commit comments