HNCU1330:算法3-1:八进制数
来源:互联网 发布:漏洞网站源码 编辑:程序博客网 时间:2024/06/05 20:46
http://hncu.acmclub.com/index.php?app=problem_title&id=111&problem_id=1330
题目描述
将十进制数转换为八进制,并输出。
图:将十进制数转换为八进制并输出
输入格式
输入包含若干十进制正整数。
输出
输出相应的八进制数,每个占一行。
样例输入
1
2
3
7
8
9
19
10020345
样例输出
1
2
3
7
10
11
23
46162771
#include<string.h>#include<ctype.h>#include<malloc.h> /* malloc()等 */#include<limits.h> /* INT_MAX等 */#include<stdio.h> /* EOF(=^Z或F6),NULL */#include<stdlib.h> /* atoi() */#include<math.h> /* floor(),ceil(),abs() *//* 函数结果状态代码 */#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */#define STACK_INIT_SIZE 10 /* 存储空间初始分配量 */#define STACKINCREMENT 2 /* 存储空间分配增量 */typedef int SElemType; /* 定义栈元素类型为整型 */typedef struct SqStack{ SElemType *base; /* 在栈构造之前和销毁之后,base的值为NULL */ SElemType *top; /* 栈顶指针 */ int stacksize; /* 当前已分配的存储空间,以元素为单位 */} SqStack; /* 顺序栈 */Status InitStack(SqStack *S){ /* 构造一个空栈S */ (*S).base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!(*S).base) exit(OVERFLOW); /* 存储分配失败 */ (*S).top=(*S).base; (*S).stacksize=STACK_INIT_SIZE; return OK;}Status Push(SqStack *S,SElemType e){ /* 插入元素e为新的栈顶元素 */ if((*S).top-(*S).base>=(*S).stacksize) /* 栈满,追加存储空间 */ { (*S).base=(SElemType *)realloc((*S).base,((*S).stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!(*S).base) exit(OVERFLOW); /* 存储分配失败 */ (*S).top=(*S).base+(*S).stacksize; (*S).stacksize+=STACKINCREMENT; } *((*S).top)++=e; return OK;}Status Pop(SqStack *S,SElemType *e){ /* 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR */ if((*S).top==(*S).base) return ERROR; *e=*--(*S).top; return OK;}Status StackEmpty(SqStack S){ /* 若栈S为空栈,则返回TRUE,否则返回FALSE */ if(S.top==S.base) return TRUE; else return FALSE;}void conversion(int n) /* 算法3.1 */{ /* 对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数 */ SqStack s; SElemType e; InitStack(&s); /* 初始化栈 */ while(n) /* 当n不等于0 */ { Push(&s,n%8); /* 入栈n除以8的余数(8进制的低位) */ n=n/8; } while(!StackEmpty(s)) /* 当栈不空 */ { Pop(&s,&e); /* 弹出栈顶元素且赋值给e */ printf("%d",e); /* 输出e */ } printf("\n");}int main(){ int n; while(~scanf("%d",&n)) { conversion(n); } return 0;}
- HNCU1330:算法3-1:八进制数
- HNCU 1330: 算法3-1:八进制数
- 算法提高 十进制数转八进制数
- 算法提高 十进制数转八进制数
- 算法提高 十进制数转八进制数
- 算法训练 十进制数转八进制数
- 算法提高 十进制数转八进制数
- 算法提高 十进制数转八进制数
- 蓝桥杯 算法提高 算法训练 十进制数转八进制数
- 八进制数
- 八进制数
- 二进制数转换为八进制, 十六进制数的算法
- 二进制,八进制,十六进制数转换为十进制数的算法
- 十进制数转换为二进制,八进制,十六进制数的算法
- 十进制数转换为二进制,八进制,十六进制数的算法
- 十进制数转换为二进制,八进制,十六进制数的算法
- 1501181019-蓝桥杯-算法提高 十进制数转八进制数
- 蓝桥杯 算法提高 十进制数转八进制数
- 修改Chrome浏览器默认背景颜色为浅绿色
- numpy安装失败--持续更新
- spring 的OpenSessionInViewFilter简介2
- IOS学习笔记(8)UIPageViewController UIProgressView 监听和响应键盘通知
- [已解决]Android Gallery滑动太快的问题
- HNCU1330:算法3-1:八进制数
- 文件被误删后我们该怎么办?
- 注销登录后点击浏览器页面依然能后退的解决办法
- 自己动手写OpenStack的QoS功能
- HDU1035 Prime Ring Problem
- 用三张图片详解Asp.Net 全生命周期
- 判断网页在手机浏览器和PC浏览器访问!~
- C++的输出精度控制
- storm cluster