Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Number Base solution in Clear category for Number Base by Seaclaid
def checkio(str_number, radix):
pot=[0,1,2,3,4,5,6,7,8,9,10]
az=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
nu=[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]
print(str_number,radix,type(pot),pot)
odp=0
for i in range(len(str_number)):
print(i,len(str_number)-i)
if str_number[i].isdigit()==True:
if int(str_number[i])>=radix:
odp=-1
return odp
else:
odp=odp+int(str_number[i])*(radix**pot[(len(str_number)-1)-i])
else:
for j in range(len(az)):
if str_number[i]==az[j]:
if nu[j]>=radix:
odp=-1
return odp
else:
print(nu[j],pot[len(str_number)-i])
odp=odp+int(nu[j])*(radix**pot[(len(str_number)-1)-i])
print(pot[len(str_number)-i])
print(odp)
return odp
#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"
Jan. 9, 2017