数据结构实验之栈与队列一:进制转换
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Example Input
1279 8
Example Output
2377
Hint
代码如下:
#include<stdio.h>
#include<stdlib.h>
#define Maxsize 1001
typedef struct
{
int *top;
int *base;
int stacksize;
} Stack;
int Creat(Stack *S)
{
S->base=(int *)malloc(Maxsize*sizeof(int));
if(!S->base)exit(0);
S->top=S->base;
S->stacksize=Maxsize;
return 0;
}
void Push(Stack *S,int e)
{
*(S->top++)=e;
}
void Conversion(Stack *S,int n,int m)
{
int t;
if(n==0)
printf("0");
else
while(n)
{
t=n%m;
n=n/m;
Push(S,t);
}
}
void Show(Stack *S)
{
while(S->top>S->base)
{
printf("%d",*(S->top-1));
S->top--;
}
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
Stack S;
Creat(&S);
Conversion(&S,n,m);
Show(&S);
return 0;
}