diff options
| author | Paulo Custodio <pauloscustodio@gmail.com> | 2024-09-04 10:59:07 +0100 |
|---|---|---|
| committer | Paulo Custodio <pauloscustodio@gmail.com> | 2024-09-04 11:13:02 +0100 |
| commit | 579c05eadfc83acd0b2f5a65567ec781f8e6f317 (patch) | |
| tree | 03f03f8ed552c6602a5714b784165db30ffee95b | |
| parent | 27bf21747ebc688648590e44876fe593858cbb10 (diff) | |
| download | perlweeklychallenge-club-579c05eadfc83acd0b2f5a65567ec781f8e6f317.tar.gz perlweeklychallenge-club-579c05eadfc83acd0b2f5a65567ec781f8e6f317.tar.bz2 perlweeklychallenge-club-579c05eadfc83acd0b2f5a65567ec781f8e6f317.zip | |
Add Python solution to challenge 052
| -rw-r--r-- | challenge-052/paulo-custodio/python/ch-1.py | 21 | ||||
| -rw-r--r-- | challenge-052/paulo-custodio/python/ch-2.py | 48 |
2 files changed, 69 insertions, 0 deletions
diff --git a/challenge-052/paulo-custodio/python/ch-1.py b/challenge-052/paulo-custodio/python/ch-1.py new file mode 100644 index 0000000000..7786282a38 --- /dev/null +++ b/challenge-052/paulo-custodio/python/ch-1.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +# Challenge 052 +# +# TASK #1 +# Stepping Numbers +# Write a script to accept two numbers between 100 and 999. It should then print +# all Stepping Numbers between them. +# +# A number is called a stepping number if the adjacent digits have a difference +# of 1. For example, 456 is a stepping number but 129 is not. + +import sys + +STEPPING_NUMS = [123, 234, 345, 456, 567, 678, 789] + +start = int(sys.argv[1]) +end = int(sys.argv[2]) +for n in STEPPING_NUMS: + if n >= start and n <= end: + print(n) diff --git a/challenge-052/paulo-custodio/python/ch-2.py b/challenge-052/paulo-custodio/python/ch-2.py new file mode 100644 index 0000000000..1bb6b70bed --- /dev/null +++ b/challenge-052/paulo-custodio/python/ch-2.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 + +# Challenge 052 +# +# TASK #2 +# Lucky Winner +# Suppose there are following coins arranged on a table in a line in random +# order. +# +# Pound1, 50p, 1p, 10p, 5p, 20p, Pound2, 2p +# +# Suppose you are playing against the computer. Player can only pick one coin +# at a time from either ends. Find out the lucky winner, who has the larger +# amounts in total? + +from random import shuffle + +coins = [100, 50, 1, 10, 5, 20, 200, 2] +shuffle(coins) + +human = 0 +computer = 0 + +while len(coins) > 0: + # human + draw = "" + while draw != "b" and draw != "e": + draw = input("Coins: "+" ".join([str(x) for x in coins])+". draw (b/e)? ") + if draw == "b": + human += coins[0] + coins = coins[1:] + else: + human += coins[-1] + coins = coins[:-1] + + # computer + if len(coins) > 0: + if coins[0] >= coins[-1]: + computer += coins[0] + coins = coins[1:] + else: + computer += coins[-1] + coins = coins[:-1] + +if human > computer: + print(f"You WIN ({human}/{computer})") +else: + print(f"You LOOSE ({human}/{computer})") |
