十进制转换为任意进制(栈 c++版)

来源:互联网 发布:淘宝卖家如何消除差评 编辑:程序博客网 时间:2024/05/18 09:45
//十进制转换为任意进制#include <iostream>using namespace std;#define MAXSIZE 20class Transform{private:int* Buffer;int Top;int End;public:Transform(){Buffer = new int[MAXSIZE+1];Top = End = 0;}~Transform(){delete [] Buffer;}void Push(int i);int Pop();bool Empty();};void Transform::Push(int i){if(Top < MAXSIZE){Top = Top + 1;Buffer[Top] = i;}else{cout<<"溢出!"<<endl;}}int Transform::Pop(){if(Top > 0){int i = Buffer[Top];Top = Top - 1;return i;}else{cout<<"栈空!"<<endl;return NULL;}}bool Transform::Empty(){if(Top == End){return true;}else{return false;}}int main(){int a[2] = {7856,1348},b;int r[4] = {8,6,4,2};for(int i = 0; i < 2; i++){for(int j = 0; j < 4; j++){int temp = a[i];Transform trans;cout<<"将10进制"<<a[i]<<"转换为"<<r[j]<<"进制为:";while(temp != 0){b = temp % r[j];temp = temp / r[j];trans.Push(b);}while(!trans.Empty()){cout<<trans.Pop();}cout<<endl;}cout<<endl;}return 0;}

原创粉丝点击