• 【杂耍题】U155612 qwq i am cute (只用if和printf写题)


    题目链接:https://www.luogu.com.cn/problem/U155612

    题目有点问题,不能主动检测代码是否合法,就算你用while for,同样能过。但我这次写的的确是只使用if和printf的解法。

    由于代码提交有文本上限,所以直接写肯定提交不了。所以我采用的方法的宏定义(宏定义不算,大概,也不知道能不能用函数,要不然递归也可以轻松解决,题目太不严谨)。

    这个方法就是宏定义套宏定义。比如

    #define p0 printf("qwq i am cute
    ");
    #define p1 p0 p0

    这只要写入p1 世界上代码编译时就会自动转换成p0 p0 然后再被转换成printf("qwq i am cute "); printf("qwq i am cute "); 就达到缩减文本的目的。

    然后就是判断输出几个字符串的情况了,直接写if一个一个判断那肯定太麻烦了,文本量也大,所以我们按位判断。

    把n看成一个二进制数,当他第一位是1就打印一个字符串,第二位是1就打印2个字符串,第三位是1就打印4个字符串,以此类推,第i位是1就打印2 ^ (i-1)个,第i位是0就不打印,最后打印的字符串的总和就是n的数量

    代码

    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<cstring>
    #include<queue>
    #include<cstdio>
    #include<ctime>
    #define p0 printf("qwq i am cute
    ");
    #define p1 p0 p0
    #define p2 p1 p1
    #define p3 p2 p2
    #define p4 p3 p3
    #define p5 p4 p4
    #define p6 p5 p5
    #define p7 p6 p6
    #define p8 p7 p7
    #define p9 p8 p8
    #define p10 p9 p9
    #define p11 p10 p10
    #define p12 p11 p11
    #define p13 p12 p12
    using namespace std;
    typedef long long ll;
    
    signed main(){
        int n;
        scanf("%d",&n);
    
        //for(int i=0;i<13;i++){
        //    printf("#define p%d p%d p%d
    ",i+1,i,i);
        //}
    
        //for(int i=0;i<13;i++){
        //    printf("if(n>>%d&1){ p%d}
    ",i,i);
        //}
        if(n>>0&1){ p0}
        if(n>>1&1){ p1}
        if(n>>2&1){ p2}
        if(n>>3&1){ p3}
        if(n>>4&1){ p4}
        if(n>>5&1){ p5}
        if(n>>6&1){ p6}
        if(n>>7&1){ p7}
        if(n>>8&1){ p8}
        if(n>>9&1){ p9}
        if(n>>10&1){ p10}
        if(n>>11&1){ p11}
        if(n>>12&1){ p12}
    
        scanf(" ");
    }
  • 相关阅读:
    Django基础
    XSS BOT编写
    Weblogic ssrf+Redis Getshell学习
    CORS与JSONP配置不当所导致的信息泄露
    VulnHub FristLeaks 1.3
    攻防世界--REVERSE新手练习区writeup
    2019第三届强网杯线下3道RW
    SCTF2019--WEB 2题复现
    文件上传--利用.htaccess绕过黑名单
    CEF 与 QML 对比
  • 原文地址:https://www.cnblogs.com/komet/p/14567535.html
Copyright © 2020-2023  润新知