算法—数制转换(十进制转八进制)
2020-04-23 本文已影响0人
土豆骑士
思路:1. 初始化一个空栈S
- 当十进制N非零时,循环执行以下操作
- 把N与8求余得到的八进制数压入栈S;
- N更新为N与8的商;
- 当栈S非空时,循环执行以下操作
- 弹出栈顶元素e,输出e;
算法核心代码(使用顺序存储的栈,相关函数——>栈)
int tenConvertToEight(int N) {
SqStack S;//
SElemType e;
InitStack(&S);
while (N) {// 转换计算方法,压栈
PushData(&S, N%8);
N = N/8;
}
int sum = 0;
while (S.top != -1) {
Pop(&S, &e);//出栈
printf("%d ",e);
sum = sum + e * (pow(10, S.top+1));
}
printf("sum = %d ",sum);
return sum;
}