数据结构实验之栈一:进制转换

来源:互联网 发布:阿里云服务器托管 编辑:程序博客网 时间:2024/06/06 12:39

题目描述

输入一个十进制整数,将其转换成对应的R(2<=R<=9)进制数,并输出。

输入

第一行输入需要转换的十进制数;
第二行输入R。

输出

输出转换所得的R进制数。

示例输入

12798

示例输出

2377

 

 

都是套路啊都是套路微笑偷笑

 
#include <stdio.h>#include <stdlib.h>#define maxstack 100000#define numstack 100000typedef int Elemtype;typedef struct{    Elemtype *top;    Elemtype *base;    int stacksize;}qstack;int initstack(qstack *L){    L->base=(Elemtype *)malloc(maxstack *sizeof(Elemtype));    if(!L->base)    {        exit(0);    }    L->top=L->base;    L->stacksize=maxstack;    return 0;}int pushstack(qstack *L,int k){    if(L->top-L->base>=L->stacksize)    {        L->base=(Elemtype *)realloc(L->base,(L->stacksize+numstack)*sizeof(Elemtype));        if(!L->base)        {            exit(0);        }     L->top=L->base+L->stacksize+numstack;    }     *L->top++=k;     return 0;}int conversion(qstack *L,int n,int m){    int k;    while(n)    {        k=n%m;        n=n/m;        pushstack(L,k);    }    return 0;}int putstack(qstack *L){    while(L->top>L->base)    {        printf("%d",*(L->top-1));        L->top--;    }    return 0;}int main(){    qstack L;    initstack(&L);    int n,m;    scanf("%d %d",&n,&m);    conversion(&L,n,m);    putstack(&L);    return 0;}

0 0
原创粉丝点击