P5657 [CSP-S2019] 格雷码 (找规律)
作者:互联网
观察几个数据,有一种思路:类似于二分,判断每一位应该填1还是0;
1 #include <bits/stdc++.h> 2 //#define loveGsy 3 using namespace std; 4 int n; 5 unsigned long long k, bk; 6 bool flag; 7 8 int main() { 9 #ifdef loveGsy 10 freopen("a.in", "r", stdin); 11 freopen("a.out", "w", stdout); 12 #endif 13 cin >> n >> k; 14 bk = pow(2, n - 1); 15 while (bk) { 16 if (!flag){ 17 if (k < bk) cout << "0"; 18 else if (k >= bk) { 19 cout << "1"; 20 k -= bk; 21 flag = true; 22 } 23 } 24 25 else if (flag) { 26 if (k < bk) { 27 cout << "1"; 28 flag = false; 29 } 30 else if (k >= bk) { 31 cout << "0"; 32 k -= bk; 33 flag = true; 34 } 35 } 36 bk >>= 1; 37 } 38 return 0; 39 }
标签:cout,P5657,loveGsy,long,bk,int,flag,S2019,CSP 来源: https://www.cnblogs.com/yhxnoerror/p/16527261.html