zoukankan      html  css  js  c++  java
  • 算法分析与设计——格雷码

    #include <stdio.h>   

    #include <stdlib.h>   

      

    #define MAX 1024   

    #define M 10

      

    int a[MAX][M];   

      

    void ForeCode(int forenum, int n)  

    {  

        int i, j;  

        for(i = 0; i <= forenum; i++)

            for(j = n - 2; j >= 0; j--)  

                a[i][j + 1] = a[i][j];  

        for(i = 0; i <= forenum; i++)  

            a[i][0] = 0;  

    }  

    void BackCode(int backbegin, int backend, int n)  

    {  

        int i, j;  

        for(i = 0; i < backbegin; i++)

            for(j = 1; j < n; j++)  

                a[backend - i - 1][j] = a[i][j];  

            for(i = backbegin; i < backend; i++)

                a[i][0] = 1;  

    }  

    void GrayCode(int nBits)  

    {  

        int i, k, m = 1;  

        if(nBits == 1)  

        {  

            a[0][0] = 0;  

            a[1][0] = 1;  

        }  

        else  

            GrayCode(nBits - 1);

        for(i = 0; i < nBits; i++)  

            m = 2 * m;    

        k = m / 2;  

        ForeCode(k - 1, nBits);  

        BackCode(k, m, nBits);  

    }  

      

    void PrintGrayCode(int nBits)  

    {  

        int i, j, m = 1;  

        for(i = 0; i < nBits; i++)  

            m = 2 * m;  

        for(i = 0; i < m; i++)  

        {  

            for(j = 0; j < nBits; j++)  

                printf("%d", a[i][j]);  

            printf(" ");  

        }  

    }  

      

      

    int main()  

    {  

        int nBit;  

        printf("请输入n值为:",nBit);

    scanf("%d",&nBit);

        GrayCode(nBit);  

        PrintGrayCode(nBit);  

        return 0;  

    }  

    运行结果截图

  • 相关阅读:
    产品易用性
    优化Compress components with gzip 问题
    转:稳定性测试
    Xray CA证书
    转:获取WEB各阶段响应时间
    测试用例编写注意事项
    用dd把一个空硬盘写满
    转:linux终端命令使用cpu负载到100
    JMeter命令行执行+生成HTML报告
    防F12扒代码:按下F12关闭当前页面
  • 原文地址:https://www.cnblogs.com/rourou123/p/8067418.html
Copyright © 2011-2022 走看看