数据结构实验之栈与队列一:进制转换

    科技2025-12-31  10

    Description 输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。

    Input 第一行输入需要转换的十进制非负整数; 第二行输入 R。

    Output 输出转换所得的 R 进制数。

    Sample Input 1279 8 Output 2377

    #include<bits/stdc++.h> using namespace std; typedef struct { int data[20]; int top; } Sqstack; bool sempty(Sqstack *s) //判断栈是否为空 { return (s->top == -1); } void push(Sqstack *s, int e) //进栈操作 { s->top++; s->data[s->top] = e; } int pop(Sqstack *s) // 出栈操作 { int e; if(s->top != -1) { e = s->data[s->top]; s->top--; } return e; } void change(int num, int r)//进制转换 { if(num == 0) printf("0\n"); else { Sqstack *p; p = (Sqstack *)malloc(sizeof(Sqstack)); p->top = -1;//栈top指针初始是-1 while(num != 0) { int rem1; rem1 = num % r;//先取余 push(p, rem1); num = num / r;//再相除 } while(!sempty(p)) { int rem2; rem2 = pop(p); printf("%d", rem2); } printf("\n"); } } int main() { int num, r; scanf("%d %d", &num, &r); change(num, r); return 0; }
    Processed: 0.023, SQL: 9