算法提高 十进制数转八进制数

编写函数,其功能为把一个十进制数转换为其对应的八进制数。程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数。

 样例输入
 9274
 样例输出
 22072
样例输入
 18
 样例输出
 22
#include<stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	printf("%o\n",n);
	
	return 0;
}

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
十进制数转二进制的算法如下: 1. 定义一个链栈,并初始化为空栈。 2. 将十进制不断模2,将得到的余压入栈中,直到商为0。 3. 从栈顶开始弹出每个元素,拼接成二进制。 代码实现如下: ```python class StackNode: def __init__(self, data): self.data = data self.next = None class LinkedStack: def __init__(self): self.top = None def is_empty(self): return self.top is None def push(self, data): node = StackNode(data) node.next = self.top self.top = node def pop(self): if self.is_empty(): return None data = self.top.data self.top = self.top.next return data def decimal_to_binary(decimal): stack = LinkedStack() while decimal > 0: remainder = decimal % 2 stack.push(remainder) decimal //= 2 binary = '' while not stack.is_empty(): binary += str(stack.pop()) return binary ``` 十进制数转八进制算法十进制数转二进制类似,只需要将除改为8即可。代码实现如下: ```python def decimal_to_octal(decimal): stack = LinkedStack() while decimal > 0: remainder = decimal % 8 stack.push(remainder) decimal //= 8 octal = '' while not stack.is_empty(): octal += str(stack.pop()) return octal ``` 可以通过以下代码进行测试: ```python decimal = 123 binary = decimal_to_binary(decimal) octal = decimal_to_octal(decimal) print(f"{decimal}的二进制表示为:{binary}") print(f"{decimal}的八进制表示为:{octal}") ``` 输出结果为: ``` 123的二进制表示为:1111011 123的八进制表示为:173 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小满@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值