1474 数据结构:进制转换

来源:互联网 发布:mac强制关机 编辑:程序博客网 时间:2024/05/02 04:38

数据结构:进制转换
Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByte
Description

输入一个十进制整数n,输出它对应的5进制。
要求使用堆栈。

Input

一个十进制整数n。

Output

n对应的5进制形式。

Sample Input
13

Sample Output
23


AC代码:

#include<stdio.h>#include<cstdlib>typedef int selemtype;typedef struct {  selemtype *base;  selemtype *top;  int stacksize; }sqstack;int initstack(sqstack &s) {  s.base=(selemtype *)malloc(100*sizeof(selemtype));  if(!s.base) return 0;  s.top=s.base;  s.stacksize=100;  return 1; }int stackempty(sqstack s)  {   return(s.top==s.base); }int pop(sqstack &s,selemtype &e) {   if(s.top==s.base)return 0;   e=*--s.top;  return 1; }int  push(sqstack &s,selemtype e){     if(s.top-s.base>=s.stacksize){      s.base=(selemtype *)realloc(s.base,(s.stacksize+10)*sizeof(selemtype));      if(!s.base)exit(-2);      s.top=s.base+s.stacksize;      s.stacksize+=10;}  *s.top++=e;  return 1; }void conver(int n,int p){        sqstack s;    int r,e;    initstack(s);    while(n)    {        r=n%p;        n=n/p;        push(s,r);    }     while(s.top!=s.base)    {  pop(s,e);     printf("%d",e);     }}int main(){    int n,p;    scanf("%d",&n);    conver(n,5);    printf("\n");    return 0;}


1 0
原创粉丝点击