利用栈实现整数的十进制转八进制
时间: 2024-05-07 09:15:09 浏览: 52
算法思路:
1.将十进制数不断除以8,将余数压入栈中,直到被除数为0。
2.将栈中的元素依次弹出,组成八进制数。
Python代码实现:
```python
def dec_to_oct(num):
stack = [] # 创建一个栈
while num != 0:
remainder = num % 8 # 求余数
stack.append(str(remainder)) # 将余数压入栈中
num //= 8 # 整除
oct_num = ''.join(stack[::-1]) # 将栈中元素依次弹出,组成八进制数
return oct_num
```
测试:
```python
num = 123
oct_num = dec_to_oct(num)
print(oct_num) # 输出:173
```
解释:123的八进制数为173。
相关问题
利用栈实现整数的十进制转八进制java
好的,以下是利用栈实现整数的十进制转八进制的Java代码:
```java
import java.util.Scanner;
import java.util.Stack;
public class DecimalToOctalUsingStack {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个十进制整数:");
int decimal = sc.nextInt();
Stack<Integer> stack = new Stack<Integer>();
while(decimal != 0) {
int remainder = decimal % 8;
stack.push(remainder);
decimal /= 8;
}
System.out.print("转换为八进制数为:");
while(!stack.isEmpty()) {
System.out.print(stack.pop());
}
}
}
```
输入一个十进制整数,将其除以8取余数,并将余数入栈,直到商为0。最后,依次弹出栈中元素,即可得到该整数的八进制表示。
利用栈实现整数的十进制转八进制用java实现
以下是利用栈实现整数的十进制转八进制的Java代码:
```java
import java.util.Stack;
public class DecimalToOctal {
public static void main(String[] args) {
int decimal = 123; // 待转换的十进制数
// 创建一个栈用于存储八进制数的每一位
Stack<Integer> stack = new Stack<>();
// 不断将十进制数除以8,将余数压入栈中
while (decimal != 0) {
int remainder = decimal % 8;
stack.push(remainder);
decimal /= 8;
}
// 依次弹出栈中的数字,组合成八进制数
StringBuilder octal = new StringBuilder();
while (!stack.isEmpty()) {
octal.append(stack.pop());
}
System.out.println("十进制数 " + decimal + " 转换为八进制数为 " + octal.toString());
}
}
```
运行结果为:
```
十进制数 123 转换为八进制数为 173
```
阅读全文