格雷码 生成

发布时间:2019年09月01日 阅读:305 次

https://www.nowcoder.com/questionTerminal/50959b5325c94079a391538c04267e15

生成n位格雷码m个。

class GrayCode {
public:
      int k;
    string change(int num){
      stringstream ss;
      string ans="";
      for(int i=1;i<=k;i++){
        int p = num%2;
        ans+=p+'0';
        num = num/2;
      }
      reverse(ans.begin(),ans.end());
//  while(num){
//
//  }
  return ans;
}
    vector<string> getGray(int n) {
        // write code here
        vector<string>p;
        k = n;
        int S = pow(2.0,k);
          for(int i=0;i<S;i++){
            int uu = i^(i/2);
              p.push_back(change(uu));
        //    cout<<<<endl;
          }
        
        return p;
    }
};
#include<bits/stdc++.h>
using namespace std;
    int k;
string change(int num){
  stringstream ss;
  string ans="";
  for(int i=1;i<=k;i++){
    int p = num%2;
    ans+=p+'0';
    num = num/2;

  }
  reverse(ans.begin(),ans.end());
//  while(num){
//
//  }
  return ans;
}
int main()
{

    cin>>k;
    int S = pow(2.0,k);
    for(int i=0;i<S;i++){
        int uu = i^(i/2);
        cout<<change(uu)<<endl;
    }
    return 0;
}

https://blog.csdn.net/pipisorry/article/details/72356418

http://www.matrix67.com/blog/archives/266

https://oi-wiki.org/misc/gray-code/

https://wenku.baidu.com/view/26a147325a8102d276a22fcd.html

Tag:
相关文章

发表评论: