diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-05-25 15:46:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-25 15:46:49 +0100 |
| commit | a9081aee6e95800c765061d9bf1587ea42301e05 (patch) | |
| tree | a3d7841746e6cc02d745c3670ce599eca0f076ff | |
| parent | e6b80777c18cf1714faaceccb3e7302312581206 (diff) | |
| parent | 81397c78efc7711fb79c1fa6a54f3d0e1e9c1c54 (diff) | |
| download | perlweeklychallenge-club-a9081aee6e95800c765061d9bf1587ea42301e05.tar.gz perlweeklychallenge-club-a9081aee6e95800c765061d9bf1587ea42301e05.tar.bz2 perlweeklychallenge-club-a9081aee6e95800c765061d9bf1587ea42301e05.zip | |
Merge pull request #4139 from stuart-little/stuart-little_114_python
1st commit on 114_python
| -rwxr-xr-x | challenge-114/stuart-little/python/ch-1.py | 18 | ||||
| -rwxr-xr-x | challenge-114/stuart-little/python/ch-2.py | 14 |
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-114/stuart-little/python/ch-1.py b/challenge-114/stuart-little/python/ch-1.py new file mode 100755 index 0000000000..891693a2f5 --- /dev/null +++ b/challenge-114/stuart-little/python/ch-1.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +# run <script> <number> + +import sys + +nrDig = len(sys.argv[1]) + +if (sys.argv[1] == '9' * nrDig): + print(int(sys.argv[1])+2) + sys.exit() + +def doubleUp(nrDig, initHalf): + return initHalf + (initHalf[:-1][::-1] if (nrDig % 2) else initHalf[::-1]) + +initHalf = sys.argv[1][0:int((nrDig+1)/2)] + +print((doubleUp(nrDig,initHalf)) if (int(doubleUp(nrDig,initHalf)) > int(sys.argv[1])) else (doubleUp(nrDig,(str(int(initHalf)+1)))) ) diff --git a/challenge-114/stuart-little/python/ch-2.py b/challenge-114/stuart-little/python/ch-2.py new file mode 100755 index 0000000000..a88d0f2adc --- /dev/null +++ b/challenge-114/stuart-little/python/ch-2.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python + +# run <script> <number> + +import re +import sys + +binNr=f"0{int(sys.argv[1]):b}" +print(f"Initial number in base two: {binNr}") + +nxt = re.sub(r"01(1*)$", r"10\1", binNr) if (int(sys.argv[1]) % 2) else re.sub(r"01(1*)(0*)$", r"10\2\1", binNr) +print(f"Next number in base two: {nxt}") + +print(f"Next number in base two: {int(nxt, base=2)}") |
