数据结构实验之栈与队列一:进制转换
Time Limit: 1000 ms Memory Limit: 65536 KiB
Submit Statistic
Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Sample Input
1279
8
Sample Output
2377
Hint
Source
#include <iostream>
#include <stdio.h>
#include <malloc.h>
#define max 1000
using namespace std;
struct sqstack
{
int *top;
int *base;
};
void initstack(sqstack &S)
{
S.base = (int *)malloc(max*sizeof(int));
S.top = S.base;
}
void push(sqstack &S, int e)
{
*S.top++ = e;
}
int stackempty(sqstack &S)
{
return S.base==S.top? 1:0;
}
int pop(sqstack & S)
{
int e;
e = *--S.top;
return e;
}
int main()
{
sqstack S;
initstack(S);
int n, R;
cin>>n;
cin>>R;
if(n==0)
{
cout<<"0"<<endl;
return 0;
}
while(n)
{
push(S, n%R);
n = n / R;
}
int e;
while(!stackempty(S))
{
e = pop(S);
cout<<e;
}
cout<<endl;
return 0;
}
/***************************************************
User name: jk160532姜兴友
Result: Accepted
Take time: 0ms
Take Memory: 208KB
Submit time: 2017-09-27 11:02:13
****************************************************/