Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Sample Input
1279
8
Sample Output
2377
Hint
Source
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data[50];
int top;
}seqstack;
void init_stack(seqstack *st) // 初始化栈
{
st->top = -1;
}
void push(seqstack *st, int num) // 压栈
{
st->top++;
st->data[st->top] = num;
}
int pop(seqstack *st) // 弹出
{
int a = st->data[st->top];
st->top--;
return a;
}
int main()
{
int num;
int r;
seqstack st;
scanf("%d %d", &num, &r);
init_stack(&st);
if (num == 0) // 等于0的情况需单独判断
printf("0");
while(num > 0)
{
int t = num % r; // 压入余数
push(&st, t);
num /= r; // num = num/r
}
while(st.top != -1) // 依次弹出
{
printf("%d", pop(&st));
}
}