格雷码递归实现(c++)

来源:互联网 发布:ws848进入编程模式 编辑:程序博客网 时间:2024/06/07 03:50
void _GrayCode(int n, vector<string>& graySeq){if(n == 1){graySeq.push_back("0");graySeq.push_back("1");return;}_GrayCode(n-1, graySeq);for(int i=0; i<graySeq.size(); ++i) //前面加0{graySeq[i] = '0' + graySeq[i];}for(int i=graySeq.size()-1; i>=0; --i)//前面加1{string temp = graySeq[i];temp[0] = '1';graySeq.push_back(temp);}return;}void GrayCode(int n){if(n < 1){cout << "input error。。。" << endl;return;}vector<string> graySeq;_GrayCode(n, graySeq);copy(graySeq.begin(), graySeq.end(), ostream_iterator<string>(cout, "\n"));}int main(){GrayCode(8);return 0;}

0 0