进制转换
题目:将十进制转化为八进制
进制转换的方法:用十进制的数不断地除以要转换的进制,取出余数进行记录,直到商为零,倒序输出余数即为转换后的数。
分析题目得到的余数需要进行保存并且倒叙输出,我们可以联想到栈。先进后出
先用数组模拟栈:
#define Maxlen 100
int a[Maxlen];
int top=0;//都是全局变量,方便我们进行修改
int pop()//出栈操作
{
if(top>0){
top--;
return a[top];
}else return -1;
}
int push(int n)//压栈操作
{
if(top<=Maxlen){
a[top]=n;
top++;}
else return -1;
}
bool isEmpty()//判空
{
if(top<=0)return false;
else {return true;}
}
主函数: 需要自己加上头文件哦
int main()
{
int a;
cin>>a;
while(a/8!=0)//直接模拟计算过程就行,也可以写个函数来进行调用
{
push(a%8);
a/=8;
}
push(a%8);
while(isEmpty()){
cout<<pop();
}
}