进制转换问题

来源:互联网 发布:知乎 墨子号 编辑:程序博客网 时间:2024/05/16 01:26

递归解决:

char ch[]="0123456789ABCDEF"; //进制所使用的数字void Convert(int num, int d) //递归算法{  if(num==0)  cout<<"转换结果:"; //开始输出else{Convert (num/d, d); //对商进行转换cout<<ch[num%d]<<" "; //注意此输出动作的位置}}

非递归解决,利用栈的特点:

char ch[]="0123456789ABCDEF";  void Convert (int num, int d) //非递归算法{  SqStack S; DataType result;  int r;   InitStack(S); while(num!=0){r=num%d;       //取余数rPush(S,ch[r]);  //余数入栈num=num/d;   //利用商进行下一次运算}while(StackEmpty(S)!=1){Pop(S, result); cout<<result;}}


原创粉丝点击