进制转换
来源:互联网 发布:引入js文件加上随机数 编辑:程序博客网 时间:2024/05/20 05:26
题目描述
输入一个十进制数N,将它转换成R进制数输出。
输入
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R != 10)。
输出
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
示例输入
7 223 12-4 3
示例输出
1111B-11#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define STACKMAXSIZE 100#define STACKTNCREATE 10#define OK 1#define OVERFLOR -1#define ERROR 0typedef int SET;typedef struct{ SET *top; SET *base; int stacksize;}Sqstack;int Initstack(Sqstack &S){ S.base=(SET*)malloc(STACKMAXSIZE*sizeof(SET)); if(!S.base) exit (OVERFLOR); S.top=S.base; S.stacksize=STACKMAXSIZE; return OK;}int Push (Sqstack &S,SET e){ if(S.top-S.base>=S.stacksize) { /*这条语句执行后,可能得到的空间,是重新分配的(基地址会变),也可能是在原来的基础扩充*/ S.base=(SET *)realloc(S.base,(S.stacksize+STACKTNCREATE)*sizeof(SET));//增加一个STACKCREATE大小SET类型的内存单元到栈S的尾部 if(!S.base) exit (OVERFLOR); S.top=S.base+S.stacksize;//棧顶指针指向正确位置 S.stacksize=S.stacksize+STACKTNCREATE; } *S.top=e; S.top++; return OK;}/*输出栈顶元素*/int Pop(Sqstack &S,SET &e){ if(S.base==S.top)return ERROR; e=*--S.top; return OK;}/*销毁棧*/void DestroyStack(Sqstack &S){ S.base=NULL;}int main(){ long N,T; int R,e; Sqstack S; while(~scanf("%ld %d",&N,&R)) { T=N; Initstack(S); if(N<0) N=-N; while(N) { Push(S,N%R); N=N/R; } if(T<0)printf("-"); while(S.base!=S.top) { Pop(S,e); if(e>=0&&e<=9)printf("%d",e); if(e==10)printf("A"); if(e==11)printf("B"); if(e==12)printf("C"); if(e==13)printf("D"); if(e==14)printf("E"); if(e==15)printf("F"); } printf("\n"); DestroyStack(S); }}
0 0
- 进制转换,类型转换
- 进制转换(进制转换)
- 进制转换-----十进制转换成二进制
- 进制的转换,八进制转换十六进制
- 进制转换,运算符,类型转换,
- 十进制转换2-9进制转换
- 进制转换
- 无限进制转换
- 进制转换
- 进制转换
- 进制转换
- 【整理】进制转换
- 进制转换
- 七、进制转换
- 进制转换
- 进制转换
- 进制转换
- NotesScript 进制转换
- 比较ArrayList、LinkedList、Vector
- 8.4 bzoj1083 [SCOI2005]繁忙的都市
- AndroidStudio_自定义AndroidStudio Locat的输出颜色
- POJ 1797 图论 Dijkstra
- 继承·方法重写
- 进制转换
- HTML5(2):音频(audio)与视频(video)
- C# 调用 C++ fftw
- picasso-强大的Android图片下载缓存库
- NOIP2010 引水入城 解题报告(bfs+dp)
- mac/linux中vim永久显示行号、开启语法高亮
- Eclipse 连接MySql数据库总结
- 3到5人小团体环境的选择
- centos7开放端口-firewall-cmd