Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Number Base by lukasz.bogaczynski
digits = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
def checkio(str_number, radix):
power = len(str_number) - 1
sum = 0
for char in str_number:
digit = 0
if char in digits:
digit = int(char)
else:
digit = 10 + ord(char) - 65
if digit >= radix:
return -1
sum = sum + ((radix ** power) * digit)
power = power - 1
return sum
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio("AF", 16) == 175, "Hex"
assert checkio("101", 2) == 5, "Bin"
assert checkio("101", 5) == 26, "5 base"
assert checkio("Z", 36) == 35, "Z base"
assert checkio("AB", 10) == -1, "B > A = 10"
print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")
Nov. 3, 2017