c - 这个程序如何打印印度 map ?

标签 c algorithm

需要澄清其工作原理。

#include "stdio.h"
main()
{
    int a,b,c;
    int count = 1;
    for (b=c=10;a="- FIGURE?, UMKC,XYZHello Folks,\
        TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
        UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
        NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
        HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
        T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
        Hq!WFs XDt!" [b+++21]; )

        for(; a-- > 64 ; )
            putchar ( ++c=='Z' ? c = c/ 9:33^b&1);
    return 0;
}

自己尝试一下,如果您知道该程序如何打印该 map ,请解释一下。

最佳答案

编辑:抱歉,没有看到骗子...

<小时/>

去除各种不可读的、不必要的和未使用的代码以及其他类型的混淆后,代码等效于:

    #include "stdio.h"

int main()
{
    int curr_char, b, c;

    const char *data = "\
    TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
    UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
    NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
    HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
    T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
    Hq!WFs XDt!";

    for (b = 0, c = 10; curr_char = data[b]; ) {
        b++;
        for(; curr_char-- > 64 ; ) {
            putchar(++c == 'Z' ? c = c / 9 : 33 ^ b & 1);
        }
    }

    return 0;
}

基本上,程序将 map 数据存储在字符串中(每行对应 4 个字符),逐个字符地遍历字符串,“解码”它(使用一些我懒得进行逆向工程的数学),然后打印空格或“!”在行尾标记或换行符。

关于c - 这个程序如何打印印度 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15172106/

相关文章:

c - 合并排序在 C 与 O(N*log[N]) 运行时

Ruby 搜索树示例混淆

arrays - 使用内插素数计数函数表 `pi(x)` 值作为素数数组的上限是否正确?

python - 查找字符串中子序列出现的次数

algorithm - 可被 N 整除的最小正数

c - x86_64 linux 上 C 程序中的内联汇编

c - 我无法使用 cmake 和 MinGW gcc 编译器构建 gtk gui

printf ("%d", <double> 的 c 行为

c - 如何在 C 中为 GTK+ 应用程序设置固定的窗口大小?

c - 算法——范围查询