格雷码 生成

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

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

生成n位格雷码m个。

C++
  1. class GrayCode {
  2. public:
  3. int k;
  4. string change(int num){
  5. stringstream ss;
  6. string ans="";
  7. for(int i=1;i<=k;i++){
  8. int p = num%2;
  9. ans+=p+'0';
  10. num = num/2;
  11. }
  12. reverse(ans.begin(),ans.end());
  13. // while(num){
  14. //
  15. // }
  16. return ans;
  17. }
  18. vector<string> getGray(int n) {
  19. // write code here
  20. vector<string>p;
  21. k = n;
  22. int S = pow(2.0,k);
  23. for(int i=0;i<S;i++){
  24. int uu = i^(i/2);
  25. p.push_back(change(uu));
  26. // cout<<<<endl;
  27. }
  28. return p;
  29. }
  30. };
C++
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int k;
  4. string change(int num){
  5. stringstream ss;
  6. string ans="";
  7. for(int i=1;i<=k;i++){
  8. int p = num%2;
  9. ans+=p+'0';
  10. num = num/2;
  11. }
  12. reverse(ans.begin(),ans.end());
  13. // while(num){
  14. //
  15. // }
  16. return ans;
  17. }
  18. int main()
  19. {
  20. cin>>k;
  21. int S = pow(2.0,k);
  22. for(int i=0;i<S;i++){
  23. int uu = i^(i/2);
  24. cout<<change(uu)<<endl;
  25. }
  26. return 0;
  27. }

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:
相关文章

发表评论: