您的位置:首页 > 编程语言 > C语言/C++

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

2018-01-15 21:13 232 查看


思路:

1)用给出的十进制数去除以8,得到的模数相加。

Decimal

Octal

Remainder 余数

2)首先这一题属于基础题吧,打算开启我的话唠模式了,今天是2018-1-15,在这里做个计划,将每天写的蓝桥杯题目都提交到CSDN上,一起分析。

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: