算法—数制转换(十进制转八进制)

2020-04-23  本文已影响0人  土豆骑士

思路:1. 初始化一个空栈S

  1. 当十进制N非零时,循环执行以下操作
    • 把N与8求余得到的八进制数压入栈S;
    • N更新为N与8的商;
  2. 当栈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;
}
上一篇下一篇

猜你喜欢

热点阅读