蓝桥杯 十进制转换成八进制或二进制 C++

本文介绍了一种将十进制数转换为八进制数的算法,并提供了使用C++实现的具体代码示例。文章还展示了如何利用栈来逆序输出余数,适用于学习进制转换和数据结构的初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述

思路:
1)用给出的十进制数去除以8,得到的模数相加。
Decimal
Octal
Remainder 余数
2)首先这一题属于基础题吧,打算开启我的话唠模式了,今天是2018-1-15,在这里做个计划,将每天写的蓝桥杯题目都提交到优快云上,一起分析。
3)十进制转换成八进制,就是用十进制的数除以8取模,将所有的模逆向的输出(这里说的笼统,不懂的可以百度一下哈)。
4)这里用的方法用两种:其一为本题用到的将所有的余数作为一个整体输出;其二就是将余数放到栈stack中逆着输出(最后给出的是十进制转换成二进制的部分代码)。

#i


----------


nclude<iostream>
#include<cmath>
#include<string>
#include<cstring>
#include<stack>
int Turn(int dec){
    int oct=0;//10进制
    int temp=dec;
    int re;//余数remainder
    int n=1;
    int sum=0;
    while(temp){
        re=temp%8;
        sum+=re*n;
        n*=10;
        temp/=8;
}
    oct=sum;
    return oct;
}
using namespace std;
int main(){
    int dec;
        cin>>dec;
    cout<<Turn(dec);
    return 0;
}

用栈输出:

stack<int> s;
    int remainder;//余数
    while (n!= 0) {
        remainder = n % 2;
        s.push(remainder);
        n /= 2;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿道学长啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值