学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

求助: 利用栈,将十进制数转换成八进制的数

求助: 利用栈,将十进制数转换成八进制的数

那位高手可以帮忙解决这个问题啊?
  十分感谢!!


利用栈,将十进制数转换成八进制的数
例:十进制转换成八进制:(66)10=(102)8
66/8=8 余 2
8/8=1 余 0
1/8=0 余 1
结果为余数的逆序:102

TOP

任意进制转换.
引用:
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http://yzfy.org **
*****************************************************************/
#include<iostream>
using namespace std;
#define stacksize 100   
typedef int DataType;   
   
typedef struct   
{   
   
DataType data[stacksize];   
    int top;   
}Stack;   
   
void Initial(Stack *s)   
{   
   
s->top=-1;   
}   
   
int Isempty(Stack *s)   
{   
   
return s->top==-1;   
}   
   
int IsFull(Stack *s)   
{   
   
return s->top==stacksize-1;       
}   
   
void Push(Stack *s,DataType x)   
{   
   
if(IsFull(s))   
    {   
        
cout<<"栈上溢";   
        exit(1);   
    }   
   
s->data[++s->top]=x;   
}   
   
DataType Pop(Stack *s)   
{   
   
if(Isempty(s))   
    {   
        
cout<<"栈为空";   
        exit(1);   
    }   
   
   
return s->data[s->top--];   
}   
   
   
//进制转换函数   
   
void Conversion(int i,int j)   
{     
   
int k;   
    Stack s;   
    Initial(&s);   
    while(i)   
    {   
        
Push(&s,i%j);   
        i=i/j;   
    }   
   
while(!Isempty(&s))   
    {   
        
k=Pop(&s);   
        cout<<k;   
    }   
   
cout<<endl;
}   
   
DataType top(Stack *s)   
{   
   
if(Isempty(s))   
    {   
        
cout<<"栈为空";   
        exit(1);   
    }   
   
return s->data[s->top];   
    }   
   
   
int main(void)   
{  
   
int m,n;
    cin>>m>>n;
    Conversion(m,n);   
    system("pause");
    return 0;
}   
[ 本帖最后由 zjl138 于 2008-6-26 15:39 编辑 ]
Say goodbye to Windows.

TOP

再给个递归的吧,以前写的.
引用:
#include<iostream>   
using namespace std;   
void conversion(int a)   
{   
   if (!a) return;   
   conversion(a/8);   
   cout<<a%8;   
}   
int main(void)   
{   
     int a;   
     cout<<"输入你要转换的数"<<endl;   
     cin>>a;   
     conversion(a);   
     cout<<endl;   
     system("pause");   
     return   0;   
}
Say goodbye to Windows.

TOP

你这好像是高级java啊,我们没学过这种类型的那~~有点看不懂的那~~
唔~~

TOP

引用:
鱼鱼啦啦 在 2008-6-27 21:14 的发言:

你这好像是高级java啊,我们没学过这种类型的那~~有点看不懂的那~~
唔~~
orz....
java~? ho ho~
不打不相识,不吵也不相识,偶然间竟遇到一直找寻的大牛.

TOP

发新话题