将考生自己学号后4位作为十进制正整数转为二进制数并输出。例学号为202119321 则将9321作为十进制数转化为二进制数。要求使用顺序存储结构顺序表、顺序栈、顺序队列均可
可以使用顺序栈来实现将十进制数转化为二进制数的功能。具体步骤如下:
- 定义一个顺序栈,并初始化为空栈。
- 将十进制数除以2,得到的余数依次入栈,直到商为0为止。
- 弹出栈中的元素,并输出,即得到二进制数。
以下是使用Python实现的代码示例:
class SeqStack:
def __init__(self):
self.stack = []
def is_empty(self):
return len(self.stack) == 0
def push(self, item):
self.stack.append(item)
def pop(self):
if self.is_empty():
return None
return self.stack.pop()
def top(self):
if self.is_empty():
return None
return self.stack[-1]
def size(self):
return len(self.stack)
def decimal_to_binary(decimal):
stack = SeqStack()
while decimal != 0:
remainder = decimal % 2
stack.push(remainder)
decimal = decimal // 2
binary = ""
while not stack.is_empty():
binary += str(stack.pop())
return binary
student_number = input("请输入学号:")
last_4_digits = int(student_number[-4:])
binary_number = decimal_to_binary(last_4_digits)
print("二进制数为:", binary_number)
运行示例:
请输入学号:202119321
二进制数为: 10010011010001
``
原文地址: https://www.cveoy.top/t/topic/hFF4 著作权归作者所有。请勿转载和采集!