格雷码打印:打印出0~2n-1数,且相邻两个数只有一位不同。
#include<iostream> #include<vector> using namespace std; int main() { int n; cin>>n; vector<int> result; result.push_back(0); for(int i=0;i<n;i++) { int high_bit=1<<i; for(int j=result.size()-1;j>=0;j--) { result.push_back(result[j]|high_bit); } } for(int i=0;i<result.size()-1;i++) { cout<<result[i]<<", "; } cout<<result[result.size()-1]<<endl; }
时间: 2024-10-29 19:12:11