首页 > 代码库 > 第六章例题
第六章例题
1 #include <cstdio> 2 #include <cstring> 3 4 using namespace std; 5 6 int btr[1<<20]; 7 8 9 int main() 10 { 11 int D,I; 12 13 while(scanf("%d%d",&D,&I)==2) 14 { 15 memset(btr,0,sizeof(btr)); 16 17 int k; 18 19 for(int i=1;i<=I;i++) 20 { 21 k=1; 22 23 for(int j=1;j<=D-1;j++) 24 { 25 if(btr[k]==0) 26 { 27 btr[k]=!btr[k]; 28 k=k*2; 29 } 30 else 31 { 32 btr[k]=!btr[k]; 33 k=k*2+1; 34 } 35 } 36 } 37 38 printf("%d\n", k); 39 } 40 } 41 42 /* 43 int main() 44 { 45 int D,I; 46 47 while(scanf("%d%d",&D,&I)==2) 48 { 49 int k=1; 50 51 for(int i=1;i<=D-1;i++) 52 { 53 54 55 if(I%2) 56 { 57 k=k*2; 58 I=(I+1)/2; 59 } 60 else 61 { 62 k=k*2+1; 63 I/=2; 64 } 65 } 66 67 printf("%d\n",k); 68 } 69 } 70 71 */ 72 73 /* 74 75 int main() 76 { 77 int D,I; 78 79 while(scanf("%d%d",&D,&I)==2) 80 { 81 int k=1; 82 83 for(int i=1;i<=D-1;i++) 84 { 85 86 87 if(I==1) //当题目是第一次左走其他时候又走时代码是这样 88 k=k*2; 89 else 90 { 91 k=k*2+1; 92 I=I-1; 93 } 94 95 } 96 97 printf("%d\n",k); 98 } 99 } 100 101 */
第六章例题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。