Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Example Input
1279 8
Example Output
2377
Hint
Author
#include <iostream> #include <stdio.h> #include <stdlib.h> #define Stack_size 100 #define Stackincreament 10 using namespace std; typedef struct { int *base; int top; int stacksize; } sqstack; void initstack(sqstack &la) { la.base = (int *)malloc(Stack_size*sizeof(int)); la.stacksize = Stack_size; if(!la.base)exit(0); la.top = 0; } void push(sqstack &L, int e) { if(L.top >= L.stacksize) { L.base = (int *)realloc(L.base, (Stack_size + Stackincreament)*sizeof(int)); if(!L.base)exit(0); L.stacksize+=Stackincreament; } L.base[L.top++] = e; } void pop(sqstack &l, int &e) { if(l.top == 0)return ; e =l.base[--l.top]; } void trans(int x, int n, sqstack &s) { int e; while(x != 0) { e = x % n; x /= n; push(s, e); } while(s.top != 0) { pop(s, e); cout<<e; } cout<<endl; } int main() { sqstack m; int x, n; cin>>x>>n; if(x == 0)cout<<0<<endl; else { initstack(m); trans(x, n, m); } return 0; }