aboutsummaryrefslogtreecommitdiff
path: root/challenge-079/roger-bell-west/python
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-079/roger-bell-west/python')
-rwxr-xr-xchallenge-079/roger-bell-west/python/ch-1.py21
-rwxr-xr-xchallenge-079/roger-bell-west/python/ch-2.py48
2 files changed, 69 insertions, 0 deletions
diff --git a/challenge-079/roger-bell-west/python/ch-1.py b/challenge-079/roger-bell-west/python/ch-1.py
new file mode 100755
index 0000000000..c3c5aff095
--- /dev/null
+++ b/challenge-079/roger-bell-west/python/ch-1.py
@@ -0,0 +1,21 @@
+#! /usr/bin/python
+
+import unittest
+
+def csb(tot):
+ bits=0
+ m=1000000007;
+ for n in range(1,tot+1):
+ bits += bin(n).count("1")
+ bits %= m
+ return bits
+
+class TestCsb(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(csb(4),5,'example 1')
+
+ def test_ex2(self):
+ self.assertEqual(csb(3),4,'example 2')
+
+unittest.main()
diff --git a/challenge-079/roger-bell-west/python/ch-2.py b/challenge-079/roger-bell-west/python/ch-2.py
new file mode 100755
index 0000000000..04f30f729d
--- /dev/null
+++ b/challenge-079/roger-bell-west/python/ch-2.py
@@ -0,0 +1,48 @@
+#! /usr/bin/python
+
+import unittest
+
+from math import log10
+
+def capacity(n):
+ cap=0
+ for r in range(min(n),max(n)+1):
+ b=[i for i in range(0,len(n)) if n[i] >= r]
+ if(len(b)>1):
+ for i in range(0,len(b)-1):
+ cap += b[i+1]-b[i]-1
+ return cap
+
+def histo(n):
+ mx=max(n)
+ cw=int(log10(mx+1)+.9999);
+ for r in reversed(range(1,mx+1)):
+ row=list()
+ row.append(format(r,str(cw)))
+ for i in range(0,len(n)):
+ s = ' '
+ if(n[i] >= r):
+ s = '#'
+ s *= cw
+ row.append(s)
+ print(' '.join(row))
+ s='-' * cw;
+ print(' '.join([s for i in range(0,len(n)+1)]))
+ row=list()
+ row.append(' ' * cw)
+ for i in n:
+ row.append(format(i,str(cw)))
+ print(' '.join(row))
+
+histo((2,1,4,1,2,5));
+histo((3,1,3,1,1,5));
+
+class TestCapacity(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(capacity((2,1,4,1,2,5)),6,'example 1')
+
+ def test_ex2(self):
+ self.assertEqual(capacity((3,1,3,1,1,5)),6,'example 2')
+
+unittest.main()