思路:
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;
}