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

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

Time Limit: 1000MS Memory limit: 65536K

题目描述

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

输入

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

输出

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

示例输入

1279
8

示例输出

2377



#include<stdio.h>

#define OK 1
#define ERROR 0

#define MAXSIZE 20010
typedef int SElemType;
typedef int Status;

typedef struct
{
    SElemType data[MAXSIZE];
    int top;
}SqStack ;

Status Initstack(SqStack &S)
{
    S.top=-1;
    return OK;
}

Status Push(SqStack &S,int e)
{
    if(S.top==MAXSIZE-1)  return ERROR;
    S.top++;
    S.data[S.top]=e;
    return OK;
}

Status conversion(SqStack &S,int n,int r)
{
    int t;
    while(n)
    {
        t=n%r;
        n=n/r;
        Push(S,t);
    }
    return OK;
}

int main()
{
    int n,r;
    scanf("%d%d",&n,&r);
    SqStack S;
    Initstack (S);
    conversion(S,n,r);
    while(S.top!=-1)
    {
        printf("%d",S.data[S.top]);
        S.top--;
    }
    printf("\n");
    return 0;
}




猜你喜欢

转载自blog.csdn.net/ithliu/article/details/52107760