class Node(object):
def __init__(self, data):
self.data = data
self.next = None
class Stack(object):
def __init__(self):
self.node = Node(None)
self.head = self.node
self.size = 0
def is_empty(self):
return self.size == 0
def get_size(self):
return self.size
def push(self, data):
node = Node(data)
node.next = self.head.next
self.head.next = node
self.size += 1
def pop(self):
if not self.is_empty():
current_node = self.head.next
if self.get_size() == 1:
self.head.next = None
else:
self.head.next = self.head.next.next
self.size -= 1
return current_node.data
def top(self):
if not self.is_empty():
return self.head.next.data
else:
raise IndexError("stack is empty")
def Transform(num,mode):
s = Stack()
if num>0:
while num!=0:
h = num%mode
s.push(h)
num = num//mode
while s.get_size() !=0:
print(s.pop(),end="")
elif num<0:
num = num*-1
while num!=0:
h = num%mode
s.push(h)
num = num//mode
while s.is_empty:
print(s.pop(),end="")
else:
print()
if __name__ == "__main__":
Transform(10,2)
print()
Transform(10,4)
print()
Transform(10,8)