aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-25 15:46:49 +0100
committerGitHub <noreply@github.com>2021-05-25 15:46:49 +0100
commita9081aee6e95800c765061d9bf1587ea42301e05 (patch)
treea3d7841746e6cc02d745c3670ce599eca0f076ff
parente6b80777c18cf1714faaceccb3e7302312581206 (diff)
parent81397c78efc7711fb79c1fa6a54f3d0e1e9c1c54 (diff)
downloadperlweeklychallenge-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-xchallenge-114/stuart-little/python/ch-1.py18
-rwxr-xr-xchallenge-114/stuart-little/python/ch-2.py14
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)}")