zoukankan      html  css  js  c++  java
  • HNCU 1330: 算法3-1:八进制数

    题目描述
    将十进制数转换为八进制,并输出。
    这里写图片描述
    图:将十进制数转换为八进制并输出
    输入
    输入包含若干十进制正整数。

    输出
    输出相应的八进制数,每个占一行。

    样例输入
    1
    2
    3
    7
    8
    9
    19
    10020345
    样例输出
    1
    2
    3
    7
    10
    11
    23
    46162771

    栈的简单应用

    #include<stdio.h>
    #include<stdlib.h>
    
    #define STACK_INIT_SIZE 100
    #define STACKINCREMENT 10
    #define OVERFLOW 0
    #define OK 1
    #define ERROR 0
    typedef int SElemType;
    typedef int Status;
    
    typedef struct {
        SElemType *base;
        SElemType *top;
        int stacksize;
    }SqStack; 
    
    Status InitStack(SqStack *p)//构造一个空栈p 
    {
        p->base = (SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
        if(!p->base )
            exit(OVERFLOW);
        p->top = p->base;
        p->stacksize = STACK_INIT_SIZE;
        return OK;
    }
    
    Status Push(int e,SqStack *p)//插入e为栈的新元素 
    {
        SElemType *newbase;
        if((p->top -p->base) >= p->stacksize )
        {
            newbase = (SElemType*)realloc(p->base,(STACKINCREMENT+p->stacksize )*sizeof(SElemType));
            if(!newbase)
                exit(OVERFLOW);
            p->base = newbase;
            p->stacksize += STACKINCREMENT;
        }
         *(p->top)++ = e;
    
        return OK;
    }
    
    Status StackEmpty(SqStack *p)//若栈为空栈,则返回OK,否则返回ERROR 
    {
        if(p->base == p->top )
            return OK;
        return ERROR;
    }
    
    Status Pop(SqStack *p,int *n)//若栈不为空,则删除栈顶元素,用*n返回其值 
    {
        if(p->base == p->top )
            return ERROR;
        *n = *(--p->top);
        return OK;
    }
    void Conversion(int n,SqStack *p)//对于任意输入的一个非负十进制整数,打印输出与其等值的八进制数 
    {
        int e;
        InitStack(p);
        while(n)
        {
            Push(n%8,p);
            n/=8;
        }
        while(!StackEmpty(p))
        {
            Pop(p,&e);
            printf("%d",e);
        }
        printf("
    ");
    }
    
    int main()
    {
        int n;
        SqStack p;
        while(scanf("%d",&n)!=EOF)
        {
            Conversion(n,&p);
        }
        return 0;
    } 
  • 相关阅读:
    Codeforces Round #260 (Div. 1) A
    cdoj 1131 男神的礼物 区间dp
    bzoj2435: [Noi2011]道路修建 树上dp
    hdu 4597 Play Game 区间dp
    cdoj 31 饭卡(card) 01背包
    hdu5256 序列变换 dp LIS
    BZOJ 4027: [HEOI2015]兔子与樱花 树上dp
    Codeforces Round #202 (Div. 1) D. Turtles dp
    hdu 4114 Disney's FastPass 状压dp
    Python help() 函数
  • 原文地址:https://www.cnblogs.com/hellocheng/p/7350135.html
Copyright © 2011-2022 走看看