【順序棧】SDUT2131 進位制轉換
阿新 • • 發佈:2018-12-14
Problem Description
輸入一個十進位制非負整數,將其轉換成對應的 R (2 <= R <= 9) 進位制數,並輸出。
Input
第一行輸入需要轉換的十進位制非負整數; 第二行輸入 R。
Output
輸出轉換所得的 R 進位制數。
Sample Input
1279 8
Sample Output
2377
#include <stdio.h> #include <stdlib.h> typedef struct { int *base; int *top; int len; } sq; sq begin() { sq s; s.base=(int *)malloc(sizeof(int)*100); s.top=s.base; s.len=0; return s; } void push(sq *s,int e) { *(s->top)=e;//meiemeieieieieieieiie s->top++; s->len++; } /*void pop(sq *s) { s->top--; }*/ int empty(sq *s) { if(s->top==s->base) return 1; else return 0; } int main() { int x,c; sq s; scanf("%d%d",&x,&c); s=begin(); if(x==0) push(&s,0); else while(x!=0) { push(&s,x%c); x=x/c; } while(!empty(&s)) { printf("%d",*(s.top-1)); s.top--; } printf("\n"); return 0; }