美文网首页
算法—数制转换(十进制转八进制)

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

作者: 土豆骑士 | 来源:发表于2020-04-23 06:52 被阅读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;
    }
    

    相关文章

      网友评论

          本文标题:算法—数制转换(十进制转八进制)

          本文链接:https://www.haomeiwen.com/subject/nxinihtx.html