比赛 |
EYOI常规赛 4th |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
格雷码 |
最终得分 |
100 |
用户昵称 |
今天作业写了没 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2022-05-27 19:55:22 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
unsigned long long a,b,num[64]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,562949953421312,1125899906842624,2251799813685248,4503599627370496,9007199254740992,18014398509481984,36028797018963968,72057594037927936,144115188075855872,288230376151711744,576460752303423488,1152921504606846976,2305843009213693952,4611686018427387904,9223372036854775808};
void dd(unsigned long long n,unsigned long long k)
{
if(n==0) return;
if(k>=num[n-1])
{
cout<<"1";
dd(n-1,(num[n-1]-k)+num[n-1]-1);
return;
}
cout<<"0";
dd(n-1,k);
}
int main(){
freopen("2019code.in","r",stdin);
freopen("2019code.out","w",stdout);
cin>>a>>b;
dd(a,b);
}