数据结构实验之栈与队列一:进制转换
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Example Input
1279 8
Example Output
2377
提示:如果输入0的话不换怎么转换都是0
#include <iostream>
using namespace std;
typedef struct
{
int *base;
int *top;
}sqstack;
void push(sqstack &S,int e)
{
*S.top++=e;
}
int Empty(sqstack &S)
{
if(S.top==S.base) return 0;
else return 1;
}
int pop(sqstack &S)
{
int e;
if(S.top==S.base) return -1;
else
{
S.top--;
e=*S.top;
}
return e;
}
int main()
{
int n,m,e;
sqstack S;
cin>>n>>m;
if(n==0) cout<<"0"<<endl;
else
{
S.base=new int[1010];
S.top=S.base;
while(n)
{
push(S,n%m);
n=n/m;
}
while(Empty(S))
{
int t=pop(S);
cout<<t;
}
cout<<endl;
}
return 0;
}