数据结构实验之栈一:进制转换
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
输入一个十进制整数,将其转换成对应的R(2<=R<=9)进制数,并输出。
Input
第一行输入需要转换的十进制数;
第二行输入R。
第二行输入R。
Output
输出转换所得的R进制数。
Example Input
1279 8
Example Output
2377
Code realization
#include <stdio.h>
#include <stdlib.h>
#define maxn 100000
typedef int SElemType;
typedef struct node
{
SElemType *base; //栈底指针
SElemType *top; //栈顶指针
int stacksize; //当前栈的最大容量
}SqStack;
void InitStack(SqStack &S)
{
S.base = (SElemType *)malloc(maxn*sizeof(SElemType));
S.top = S.base;
S.stacksize = maxn;
}
void creat(SqStack &S, int n,int m)
{
while(n)
{
*S.top = n%m;
n = n/m; // n/=m
S.top++;
}
}
void output(SqStack &S)
{
while(S.top>S.base)
{
S.top--;
printf("%d",*S.top);
}
}
int main()
{
int n,m;
SqStack S;
scanf("%d %d",&n,&m);
InitStack(S);
creat(S,n,m);
output(S);
return 0;
}