• 一道有趣的题目


    今天去南开公告板上看,发现这样一个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);   //换行
    //}

  • 相关阅读:
    for循环计算
    使用for循环签到嵌套制作直角三角形
    使用if和switch制作简单的年龄生肖判断
    Echart设置x轴文字数据不隐藏
    前端可视化-表格-图形-工具
    Vue + Element 中的Echart单线图
    Vue + Element 实现多选框选项上限提示与限定
    前端网(http://www.qdfuns.com/)不能访问了
    JAVA 递归实现从n个数中选取m个数的所有组合
    前端知识点与小练习
  • 原文地址:https://www.cnblogs.com/ziyuan/p/1494629.html
Copyright © 2020-2023  润新知