zoukankan      html  css  js  c++  java
  • 一道有趣的题目

    今天去南开公告板上看,发现这样一个joke,是一道程序题,感觉有些许的意思,于是就分析了一下

    #define _________ }          //9  }
    #define ________ putchar     //8  putchar
    #define _______ main         //7  main

    #define _(_______________) ________(_______________);
    //1(15)  putchar(15);

    #define ______ _______(){
    //6  7(){

    #define __ ______ _(______________________(__________,_____________))\
     _(______________________(________________(______________,___________,___________,______________),\
     ________________(______________,___________,______________,___________)))\
     _(______________________(________________(______________,___________,___________,______________),\
     ________________(___________,___________,______________,______________)))\
     _(______________________(________________(______________,___________,___________,______________),\
    ________________(___________,___________,______________,______________)))
    //2 6 1(22(10,13))1(22(16(14,'1','1',14),16(14,'1',14,'1')))1(22(16(14,'1','1',14),16('1','1',14,14)))
    //1(22(16(14,'1','1',14),16('1','1',14,14)))

    // 2 6 putchar(((10<<'4')|13));putchar(22(16('0','1','1','0'),16('0','1','0','1')));
    //putchar(22(16('0','1','1','0'),
    //16('1','1',16,'0')));putchar(22(16('0','1','1','0'),16('1','1','0','0')));

    // 2 6 putchar(((10<<'4')|13));putchar(22(16('0','1','1','0'),16('0','1','0','1')));
    //putchar(22(16('0','1','1','0'),
    //16('1','1','0','0')));putchar(22(16('0','1','1','0'),16('1','1','0','0')));


    // 16('0','1','1','0')=((0<<3) | (1 << 2) | (1 << 1) | 0) = 0|4|2|0 = 6
    // 16('1','1','0','0')=((1<<3) | (1<<2) | (0<<1) | 0) = 8|4|0|0 = 12
    // 16('0','1','0','1')=((0<<3) | (1 << 2) | (0 << 1) | 1)=0|4|0|1 = 5
    //// 2 6 putchar(((10<<'4')|13));putchar(22('6','5'));
    //// putchar(22('6','12'));putchar(22('6','12'));

    // 22(6,5) = 6 << 4 | 5 = 101
    // 22(6,12) = 6 << 4 | 12 = 108
    //// 2=main(){ putchar((('4'<<'4')|'8'));putchar('101');putchar('108');putchar('108');
    #define ___ _(______________________(________________(______________,___________,___________,______________),\
     ________________(___________,___________,___________,___________)))\
     _(______________________(________________(______________,______________,___________,______________),\
     ________________(___________,___________,______________,______________)))\
     _(______________________(________________(______________,______________,___________,______________),\
     ________________(______________,______________,______________,______________)))\
     _(______________________(________________(______________,___________,___________,___________),\
     ________________(______________,___________,___________,___________)))\
     _(______________________(________________(______________,___________,___________,______________),\
    ________________(___________,___________,___________,___________)))
    // 3 1(22(16(14,11,11,14),16(11,11,11,11)))1(22(16(14,14,11,14),16(11,11,14,14)))
    //1(22(16(14,14,11,14),16(14,14,14,14)))1(22(16(14,11,11,11),16(14,11,11,11)))1(22(16(14,11,11,14),16(11,11,11,11)))

    // 16(14,11,11,14) = 6
    // 16(11,11,11,11) = ((1<<3) | (1<<2) | (1<<1) | 1) = 15
    // 16(14,14,11,14) = ((0<<3) | (0<<2) | (1<<1) | 0) = 2
    // 16(14,14,14,14) = ((0<<3) | (0<<2) | (0<<1) | 0) = 0
    // 16(14,11,11,11) = ((0<<3) | (1<<2) | (1<<1) | 1) = 7
    ////putchar(22('6','15'));putchar(22('2','12'));putchar(22('2','0'));putchar(22('7','7'));putchar(22('6','15'));

    //22(7,7)= (7 << 4) | 7 = 119
    //22(6,15) = (6 << 4) | 15 = 111
    //22(1,0) = (2<<4) | 0 = 32
    //22(1,12) = (1 << 4) | 12 = 44
    ////3 = putchar('111');putchar('44');putchar('32');putchar('119');putchar('111');
    #define ____ _(______________________(________________(______________,___________,___________,___________),\
     ________________(______________,______________,___________,______________)))\
     _(______________________(________________(______________,___________,___________,______________),\
     ________________(___________,___________,______________,______________)))\
     _(______________________(________________(______________,___________,___________,______________),\
     ________________(______________,___________,______________,______________)))\
     _(______________________(________________(______________,______________,___________,______________),\
    ________________(______________,______________,______________,___________)))

    // 4 1(22(16(14,11,11,11),16(14,14,11,14)))1(22(16(14,11,11,14),(11,11,14,14)))
    // 1(22(16(14,11,11,14),16(14,11,14,14)))1(22(16(14,14,11,14),16(14,14,14,11)))

    // 16(14,11,14,14) = 0<<3 | 1 << 2 | 0<<1 | 0 = 4
    // 16(14,14,14,11) = ((0<<3) | (0<<2) | (0<<1) | 1) = 1
    // putchar(22('7','6'));putchar(22('6','12'));putchar(22('6','4'));putchar('2','0');

    // 22(7,2) = 7<<4 | 2 = 114
    // 22(6,4) = 6<<4 | 4 = 100
    // 22(2,0) = 2<<4 | 1 = 33
    // 4 = putchar('114');putchar('108');putchar('100');putchar('33');
    #define _____ _(______________________(________________(______________,______________,______________,______________),\
    ________________(___________,______________,___________,______________)))
    // 1(22(16(14,14,14,14),16(11,14,11,14)))

    //16(11,14,11,14) = ((1<<3) | (0 << 2) | (1<<1) | 0) = 10
    // putchar(22('0','10'))

    // 22(0,10) = 0<<4 | 10 = 10
    ////5 = putchar('10');
    #define ____________________ __ ___ ____ _____ _________
    //20 2 3 4 5 9

    ////20=main(){ putchar('72');putchar('101');putchar('108');putchar('108');
    ////putchar('111');putchar('44');putchar('32');putchar('119');putchar('111');
    ////putchar('114');putchar('108');putchar('100')putchar('33');
    ////putchar('10');}
    #define ___________ 1      //11   1
    #define ____________ (___________<<___________)   //12   1<<1=2     
    #define __________ (___________<<____________)    //10   1<<2=4
    #define _____________ (___________<<__________>>___________)  //13  1<<3=8
    #define ______________ (___________>>___________)   //14 1>>1=0=0

    #define ________________(_________________,____________________,\
     ___________________,_____________________) \
     ((_________________<<____________<<___________)|(____________________<<____________)|\
    (___________________<<___________)|(_____________________))
    //16(17,20,19,21)  ((17<<'3')|(20<<'2')|(19<<'1')|(21))

    #define ______________________(_______________________,\
     ________________________) ((_______________________<<__________)\
    |________________________)
    //22(23,24)  ((23<<'4')|24)

    #include <stdio.h>
    ____________________
    // 20 = 2 3 4 5 9
    //=
    //main()
    //{
    // putchar(72);    //H
    // putchar(101);   //e
    // putchar(108);   //l
    // putchar(108);   //l
    // putchar(111);   //o
    // putchar(44);    //,
    // putchar(32);    //
    // putchar(119);   //w
    // putchar(111);   //o
    // putchar(114);   //r
    // putchar(108);   //l
    // putchar(100);   //d
    // putchar(33);    //!
    // putchar(10);   //换行
    //}

  • 相关阅读:
    【React Native】某个页面禁用物理返回键
    【React Native】DeviceEventEmitter监听通知及带参数传值
    转载【React Native代码】手写验证码倒计时组件
    【React Native】 中设置 APP 名称、应用图标、为安卓添加启动图
    【React Native错误集】* What went wrong: Execution failed for task ':app:installDebug'.
    【React Native错误集】Import fails with "Failed to execute 'ImportScripts' on 'WorkerGlobalScope'"
    【React Native错误集】Android error “Could not get BatchedBridge, make sure your bundle is packaged properly” on start of app
    「React Native笔记」在React的 setState 中操作数组和对象的多种方法(合集)
    【React Native】Error: Attribute application@allowBackup value=(false) from AndroidManifest.xml
    坚果云如何使用二次验证码/谷歌身份验证器/两步验证/虚拟MFA?
  • 原文地址:https://www.cnblogs.com/ziyuan/p/1494629.html
Copyright © 2011-2022 走看看