用顺序栈实现将非负的十进制数转化为指定的进制数
时间: 2024-04-30 18:17:55 浏览: 30
下面是用顺序栈实现将非负的十进制数转化为指定的进制数的代码:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
if self.is_empty():
raise Exception("Stack is empty")
return self.items.pop()
def decimal_to_base(decimal_num, base):
if decimal_num == 0:
return "0"
stack = Stack()
while decimal_num > 0:
remainder = decimal_num % base
stack.push(str(remainder))
decimal_num = decimal_num // base
result = ""
while not stack.is_empty():
result += stack.pop()
return result
```
在上述代码中,我们定义了一个 `Stack` 类,以及一个 `decimal_to_base` 函数,该函数接受两个参数:`decimal_num` 表示需要转化的十进制数,`base` 表示需要转化的进制数。在函数内部,我们首先判断 `decimal_num` 是否为 0,如果是的话,直接返回字符串 "0"。否则,我们初始化一个空栈 `stack`,然后使用一个循环,将 `decimal_num` 不断除以 `base`,并将余数压入栈中。当 `decimal_num` 变为 0 时,循环结束。接下来,我们初始化一个空字符串 `result`,并使用另一个循环,不断从栈中弹出元素,并将其转化为字符串,拼接到 `result` 中,直到栈为空。最后,我们返回 `result`。
下面是一个例子,演示如何将十进制数 100 转化为二进制:
```python
>>> decimal_to_base(100, 2)
'1100100'
```
这个例子中,我们将十进制数 100 转化为二进制,得到的结果是字符串 "1100100"。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)