利用栈(以顺序栈作存储结构)实现进制转换。给定一个十进制整数,编程将该数以二进制形式输出。
顺序栈的类型定义:
#define MAXSIZE 100 // MAXSIZE为最大数据元素数目
typedef int ElemType;
typedef struct
{ ElemType *base;
ElemType *top;
}SqStack;
输入格式:
输入一个十进制整数。
输出格式:
输出转换后的二进制数。
输入样例:
15
输出样例:
在这里给出相应的输出。例如:
1111
import java.util.Scanner;
public class Main{
public static void main(String[] agrs){
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int sum = Main.transition(number);
System.out.println(sum);
}
static int transition(int number){
SqStack stack = new SqStack();
while(number!=0){
stack.Push(number%2);
number=number/2;
}
int sum=0;
while(!stack.isEmpty()){
sum=sum*10+stack.Top();
stack.Out();
}
return sum;
}
}
class SqStack{
private int[] a;
private int top;
// 初始化
public SqStack(){
a = new int[10];
top = -1;
}
//判断是否为空
boolean isEmpty(){
if(top==-1)
return true;
else return false;
}
//判断是否栈满
boolean isFull(){
if(top==9)
return true;
else return false;
}
//入栈
void Push(int m){
if(top==9){
System.out.println("栈已满");
}else {
a[++top] = m;
}
}
//出栈
void Out(){
if(top==-1){
System.out.println("栈为空");
}else{
top--;
}
}
//求栈顶
int Top(){
if(top==-1){
System.out.println("栈为空");
return -1;
}else {
return a[top];
}
}
}