hdoj-2031-进制转换
1 #include<stdio.h> 2 #include<algorithm> 3 using namespace std; 4 struct line//建立栈,存放数据 5 { 6 int a[40]; 7 int top; 8 }lin; 9 int flag; 10 int main() 11 { 12 int n,r; 13 int ZH(int n,int m); 14 void pr(); 15 while(scanf("%d%d",&n,&r)!=EOF) 16 { 17 flag=0; 18 if(n<0)//是否是负数的判定 19 { 20 flag=1; 21 n=-n; 22 } 23 lin.top=-1; 24 ZH(n,r); 25 pr(); 26 } 27 return 0; 28 } 29 int ZH(int n,int m)//对输入的数据n,做m进制的转换 30 { 31 if(!n) 32 return 0; 33 lin.a[++lin.top]=n%m; 34 n=n/m; 35 ZH(n,m); 36 } 37 void pr()//控制输出 38 { 39 if(flag) 40 putchar('-'); 41 while(lin.top>=0)//判定栈是否空 42 { 43 if(lin.a[lin.top]==10)//十以上的判定输出 44 putchar('A'); 45 else if(lin.a[lin.top]==11) 46 putchar('B'); 47 else if(lin.a[lin.top]==12) 48 putchar('C'); 49 else if(lin.a[lin.top]==13) 50 putchar('D'); 51 else if(lin.a[lin.top]==14) 52 putchar('E'); 53 else if(lin.a[lin.top]==15) 54 putchar('F'); 55 else 56 printf("%d",lin.a[lin.top]); 57 lin.top--; 58 } 59 putchar('\n'); 60 }