diff options
Diffstat (limited to 'challenge-079/roger-bell-west/python')
| -rwxr-xr-x | challenge-079/roger-bell-west/python/ch-1.py | 21 | ||||
| -rwxr-xr-x | challenge-079/roger-bell-west/python/ch-2.py | 48 |
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() |
