数据结构实验之栈与队列一:进制转换
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Sample Input
1279 8
Sample Output
2377
Hint
代码
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#define Maxsize 2000
using namespace std;
typedef struct node
{
int *data;
int maxsize;
int top;
}stack;
void in(stack &s)
{
s.data = new int[Maxsize];
s.maxsize = Maxsize;
s.top = -1;
}//初始化操作
void push(stack &s, int k)
{
s.data[++s.top] = k;
}
void pop(stack &s)
{
s.top--;
}
int isempty(stack &s)
{
return(s.top==-1);
}
int top(stack &s)
{
return s.data[s.top];
}
int main()
{
int n, m;
stack s;
cin>>n>>m;
in(s);
while(n>=m)
{
push(s, n%m);
n/=m;
}//进制转化问题的算法
push(s, n);
while(!isempty(s))
{
cout<<top(s);
pop(s);
}
cout<<endl;
return 0;
}