Time Limit: 1000 ms
Memory Limit: 256 mb
建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。
输入输出格式
输入描述:
输入只有一行,就是十进制整数。
输出描述:
转换后的二进制数。
输入输出样例
输入样例#:
复制
10
输出样例#:
复制
1010
代码如下:
方法一:
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 1000
typedef struct {
int data[MaxSize];
int top;
}SqStack;
//初始化栈
SqStack *init(){//
SqStack *s=(SqStack*)malloc(sizeof(SqStack));
s->top=-1;
}
//入栈
int push(SqStack *s,int x){
if(s->top==MaxSize-1){
return 0;
}
s->data[++s->top]=x;
return 1;
}
//出栈
int pop(SqStack *s){
if(s->top==-1){
return 0;
}
s->top--;
return 1;
}
int main(){
int n,m;
scanf("%d",&n);
SqStack *s=init();
m=n;
while(m!=0){
int temp=m%2;
push(s,temp);
m/=2;
}
while(s->top!=-1){
printf("%d",s->data[s->top]);
pop(s);
}
return 0;
}
方法二:
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
int a[64];
int count=0;
while(n!=0){
a[count]=n%2;
n/=2;
count++;
}
for(int i=count-1;i>=0;i--){
printf("%d",a[i]);
}
return 0;
}