程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++實現gray code(格雷碼),graycode

c++實現gray code(格雷碼),graycode

編輯:C++入門知識

c++實現gray code(格雷碼),graycode


今天別人問的一道題,強調用分治法實現 =。= 

百度了一下格雷碼,然後寫了一下。

關於格雷碼大家看百度的吧,特別詳細,貼個圖:

 

代碼如下(header_file.h是我自己寫的一個頭文件,包括常見的vector iostream等):

#include"header_file.h"
using namespace std;

vector<string> gray_code(int n)
{
    if(n==1)
    {
        vector<string> v;
        v.push_back("0");
        v.push_back("1");
        return v;
    }
    else
    {
        vector<string> v;
        vector<string> v1;
        v1=gray_code(n-1);
        
        for(int i=0;i<v1.size();i++)
        {
            v.push_back("0"+v1[i]);
        }
        for(int i=(v1.size()-1);i>-1;i--)
        {
            v.push_back("1"+v1[i]);
        }
        
        return v;
    }
}

int main(int argc,char *argv[])
{
    int n;
    cout<<"input n:";
    cin>>n;
    
    vector<string> v;
    v=gray_code(n);
    for(int i=0;i<v.size();i++)
    {
        cout<<v[i]<<endl;
    }
}

 

最後:過程是重要的,代碼只是你邏輯的體現 -。-

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved