您的位置:首页 > 其它

进制转换问题

2013-10-16 15:08 218 查看
递归解决:

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;       //取余数r
		Push(S,ch[r]);  //余数入栈
		num=num/d;   //利用商进行下一次运算
	}
	while(StackEmpty(S)!=1){
		Pop(S, result); cout<<result;
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: