编程艺术:如何用最有创造力的方式输出42

开发 后端 前端
这里,需要介绍一下为什么要输出42。这时因为42是我们人生,世界乃至整个宇宙的终级答案。这要从《银河系漫游指南》(英文名:The Hitchhiker’s Guide to the Galaxy)说起。这本书是著名英国科幻小说作家Douglas Adams所著5本银河系漫游指南系列科幻喜剧系列小说中的第一本,改编自他本人为英国广播公司第四电台(BBC Radio 4)所写的广播剧剧本。该书1979年10月12日首次由麦克米伦出版公司(Pan Books)出版,次周成为英国图书销量榜冠军,前3个月内销售超过25万本。

酷壳似乎好长时间没有像《编程真难啊》或是《老手是这样教新手编程的》或是像《如何写出无法维护的代码》这样“严肃正经”的文章了,所以,赶在大家还没有向我扔臭鸡蛋前奉献一篇。这篇文章来自CodeGolf.StackExchange上的《Most creative way to display 42》—— 请以最有创造力的方式输出42。于是出现了下面的这些答案(注:精彩的总是留在最后面)

人生和宇宙终级问题的答案:42

这里,需要介绍一下为什么要输出42。这时因为42是我们人生,世界乃至整个宇宙的终级答案。这要从《银河系漫游指南》(英文名:The Hitchhiker’s Guide to the Galaxy)说起。这本书是著名英国科幻小说作家Douglas  Adams所著5本银河系漫游指南系列科幻喜剧系列小说中的第一本,改编自他本人为英国广播公司第四电台(BBC Radio 4)所写的广播剧剧本。该书1979年10月12日首次由麦克米伦出版公司(Pan Books)出版,次周成为英国图书销量榜冠军,前3个月内销售超过25万本。截至2005年,这本小说已被翻译成超过30种语言在全世界发行,并且被改编为电视剧、电影、舞台剧等多种艺术形式的作品。

 

这本小说中小说中充满尖锐的讽刺和隐喻,被西方科幻爱好者奉为“科幻圣经”。其中有两个关键词,一个是Don’t Panic,一个是42影响力很大,而其中关于42的故事简介是这样的:

百万年前,老鼠其实是一种超智慧生物,它们建造了一部超级电脑深思Deep Thought,它们问超级电脑,生命、宇宙以及任何事情的终极答案(Answer to Life, the Universe, and Everything)什么,经过了750万年的计算,深思告诉老鼠的后人答案是42,深思解释它只能计算出答案是什么,但答案的原因必须由另一部更高智能的电脑才能解释,而该部电脑就是地球。经过了800万年,就在结果要出来的五分钟前,地球却因为挡在预定兴建的星际间高速公路的路线,被Vogons给毁灭,电脑没有给出最后的结果。

 

故事里面还说了这个42是6 乘于 9得来。当然,6乘9应该是54,但是因为地球上的电脑被搞坏了,导致主人翁答错了。至于后来有人说6 x 9 = 42是基于13进制,原作者说,完全没有这回事,他就是瞎搞的。

网上有很多人在猜测42的含义,比如douban的这篇文章,但是原作者出来说这他就是随机想了一个,完全没有任何意义。

对于42来说,数字42和短语,“生命,宇宙以及一切的答案”(Answer to Life, the Universe, and Everything) 已达到在互联网上邪教的地位。在各种技术宅,极客,科学圈有着非同凡响的地位。

另外,在美剧《Lost》里那个经典的数字序列: 4, 8, 15, 16, 23,42。经Lost的导演确认,最后那个42也是源自《银河系漫游指南》

好了,言归正传,下面让我们来看一下如何输出42的。

Ruby

puts (6 * 9).to_s(13)[/h4]

解释:6 x 9 = 42的表达式(基于13进制)

Javascript

String.prototype.answer = function() {     alert(this.charCodeAt(+!"The End of the Universe")); }; '*'.answer(); 
  • 1.

解释:+!”The End of the Universe”的值是0,’*'的ASCII码是42

 

console.log("Douglas Adams".length + "born on".length +     [1,1,0,3,1,9,5,2].reduce(  
         function(previousValue, currentValue, index, array){  
             return previousValue + currentValue;  
         }  
     ) );  
    /* [1,1,0,3,1,9,5,2] => March 11, 1952 */ 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

解释:Douglas Adams 是一位英国广播剧作家、和音乐家,尤其以《银河系漫游指南》系列作品出名。这部作品以广播剧起家,后来发展成包括五本书的“三部曲”,拍成电视连续剧。亚当斯逝世后还拍成电影。 除《银河系漫游指南》系列外亚当斯还参加了科幻电视连续剧《神秘博士》的拍摄工作,他写了其中的一些剧本。也的生日是 1952 年 3 月 11 日。

alert((!![]+ -~[])*(!![]+ -~[])+""+(!![]+ -~[])) 
  • 1.

解释:[]是个空,![]就是true,~[]是-1, 于是,表达式就这样出来了。变态!

var ________ = 0.023809523809523808, ____ = 1, ___ = 0, __ = 0, _ = 1;  
   
       __ -           ___  
     /_  |0        //     \\  
    /_/   0     //          \\  
   /_/_  |0                //  
  /_/_   |0              //  
 /_/____ |_           //  
/________|0        //  
         |0     //______________ 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

解释:这个其实是代码混乱的技巧之一,用下划线当变量。你可以参考《如何加密/混乱C源代码》和《6个变态的C语言Hello World程序

Shell

echo "what is the universe"|tr "a-z " 0-7-0-729|sed 's/9.//g;s/-/+/'|bc 
  • 1.

解释:其中,bc是一个计算器。tr是一个字符转换的命令,比如:echo "good" | tr "good" "test"输出 tsst。也就是说,g-t, o-e, o-s, d-t的映射,o被映了两次,所以,第二次会覆盖第一次。对于上面的tr "a-z " 0-7-0-7-729的意思是:abcdefg分别对应01234567,h对应-,ijklmno对应01234567,p对于2,剩下的包括空格都是9。如果你对tr和sed和bc不熟悉的话,可以man一下,关于sed你可以看一下我的《sed简明教程

#!/bin/bash  
   
#Vertical Version  
echo $((2#100))  
echo $((2#10))  
   
#Horizontal Version  
echo $((2#000100))$((2#00010)) 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

解释:2#100的意思就是说,#左边的数说明是“2进制”,右边的数是二进制数“100”,如16#ff就是16进制的ff,也就是十进制的255

echo "obase=13;6*9"|bc|figlet 
  • 1.

上面的命令输出:

 _  _  ____  
| || ||___ \  
| || |_ __) |  
|__   _/ __/  
   |_||_____| 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

解释:为了使用figlet命令,你还要去安装一个figlet(http://www.figlet.org/)这是一个让你画ASCII图的命令。

Python

Windows下,给你画个图:

import win32api, win32con, win32gui  
from time import time, sleep  
import os  
   
w = { 1:[(358263), (358262), (358261), (359261), (359262), (359264), (359266), (359270), (359282),  
     (358289), (357308), (356319), (355341), (355351), (355360), (355378), (355388), (354397),  
     (354406), (354422), (354428), (354436), (354438), (354439), (354440), (355440), (356439),  
     (357439), (358438), (360438), (362437), (369437), (372437), (381437), (386437), (391437),  
     (397436), (411436), (419435), (434435), (442435), (449434), (456434), (468434), (473435),  
     (480436), (483436), (485436), (487437), (488437), (488438), (488439), (487440), (486440),  
     (485440), (484440), (483439), (483437), (481431), (481427), (481420), (481413), (483396),  
     (485387), (488367), (491356), (493345), (500321), (503310), (507299), (514280), (517272),  
     (520266), (523260), (524258), (524259), (524261), (524265), (524269), (523275), (522289),  
     (521297), (518315), (516324), (515334), (513345), (509368), (507382), (502411), (500426),  
     (498440), (495453), (491478), (489491), (485517), (483530), (481542), (479552), (476570),  
     (475577), (474588), (473592), (473595), (473597), (473600), (473601), (473602), (473601),  
     (474599), (475597), (476594), (478587)],  
  2:[(632305), (634306), (636309), (639314), (641319), (645330), (647337), (649353), (649362),  
     (649372), (649384), (645409), (639436), (636448), (632459), (627470), (623479), (613497),  
     (608503), (599512), (595514), (591514), (587513), (581504), (578498), (576483), (575476),  
     (575469), (579454), (582447), (591436), (595432), (600430), (605429), (617432), (624437),  
     (639448), (646455), (654461), (662469), (679484), (686491), (702504), (710509), (718512),  
     (727514), (744515), (752515), (767512), (774510), (779508), (783505), (788499), (789495),  
     (789486)] }  
   
def d( x1, y1, x2, y2 ):  
    win32api.SetCursorPos((x1, y1))  
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0000)  
    win32api.SetCursorPos((x2, y2))  
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0000)  
    sleep(0.01)  
   
def p( l1 ):  
    l2 = [""]  
    l2.extend(l1)  
    l1.append("")  
    l3 = zip(l2, l1)  
    l3.pop(0)  
    l3.pop(-1)  
    for n in l3:  
        d(n[0][0], n[0][1], n[1][0], n[1][2])  
   
os.startfile("C:\Windows\system32\mspaint.exe")  
sleep(0.5)  
win32gui.ShowWindow(win32gui.GetForegroundWindow(), win32con.SW_MAXIMIZE)  
sleep(0.5)  
   
for n in w:  
    p(w[n]) 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.

输出:

lambda表达式

>>> p = lambda x: x%2!=0 and True<>> sum(p(i) for i in range(0,6)) 
  • 1.

解释:对python的lambda表达式或函数式编程不是很清楚的同学可以看一下《函数式编程

#p#

Java

import java.lang.*;  
class answer_to_everything   
{  
    void static main()   
    {  
        String s = "Hitchhiker's Guide to the Galaxy";  
        String s2 = "Don'tPanic";  
        String s3 = "The Restaurant at the End of the Universe.";  
   
        int arthur_dent = s.length();  
        int ford_prefect = s2.length();  
        int zooey_deschanel = s3.length();  
        int vogon_poetry = arthur_dent + ford_prefect;  
   
        System.out.println("         " + vogon_poetry + "       " + zooey_deschanel + " " + zooey_deschanel); //in case you're confused, I'm using Zooey to print the big '2', and Vogons to print the big '4'.  
        System.out.println("       " + vogon_poetry + vogon_poetry + "     " + zooey_deschanel + "     " + zooey_deschanel);  
        System.out.println("     " + vogon_poetry + "  " + vogon_poetry + "    " + zooey_deschanel + "       " + zooey_deschanel);  
        System.out.println("   " + vogon_poetry + "    " + vogon_poetry + "            " + zooey_deschanel);  
        System.out.println(" " + vogon_poetry + "      " + vogon_poetry + "          " + zooey_deschanel);  
        System.out.println(vogon_poetry + " " + vogon_poetry + " " + vogon_poetry + " DA " + vogon_poetry + "     " + zooey_deschanel);  
        System.out.println("         " + vogon_poetry + "     " + zooey_deschanel);  
        System.out.println("         " + vogon_poetry + "    " + zooey_deschanel + " " + zooey_deschanel + " " + zooey_deschanel + " " + zooey_deschanel);  
    }  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

上面这段看上去平淡无奇,但其亮点是那三个string,这段代码输出:

        42       42 42  
      4242     42     42  
    42  42    42       42  
  42    42            42  
42      42          42  
2 42 42 DA 42     42  
        42     42  
        42    42 42 42 42 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

别忘了Java也可以混乱代码:

public        class         FourtyTwo{ public 
static         void         main(String[]args)  
{  new        javax                    .swing.  
JFrame        () {{                    setSize  
(42 /(        42/42                    +42/42)  
*42/ (        42/42                    +42/42)  
,42/(4242+42/42)*         42/(42/42+42/42));  
}public void paint(         java.awt .Graphics  
  g){g.drawPolygon(         new int[]{42,42,42 
              + 42+         42,42+  
              42+42         ,42+42 
              +42 +         42,42+  
              42+42         +42,42 
              + 42+         42,42+42+42,42+42,  
              42+42         },new int[]{42,42+  
              42+42         +42,42+42+42+42,42 
   
+42+42+42+42+42,                  42+42+  
42+42+42+42,42,42,               42+42+42 
,42 +        42+42              ,42}, (42/  
42+42        /42)*              (42/  42 +  
42/42        + 42/             42 +    42 /  
42+42        /42))            ;g.drawPolygon  
new        int[]           {42+42+42+42+42,  
42+42        +42 +           42+42      , 42+  
42+42        + 42+          42+42        + 42,  
42+42        +42 +          42+42        +42 +  
42,42+42+42+42+42,         42+42          + 42+  
42+42,4242+42+           42+42          +42 +  
   
42+42,42+42+42+42+42+42+42+42,42+42+42+42+42+42,  
42+42+42+42+42+42,42+42+42+42+42+42+42+42,42+42+  
42+42+42+42+42+42},new int[]{42,42 +42,42+42,42+  
42+42,42+42+42,42+42+42+42+42+42,42+42+42+42+42+  
42,42+42+42+42+42,42+42+42+42+42,42+42+42+42,42+  
42+42+42,42},(42/42+42/42+42/42)*((42/42+42/42)*  
(42/42+4242)));};}.setVisible(42*42*42!=42);}} 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.

C/C++

#include  
int main()  
{  
    printf("%d", fprintf( fopen("/dev/null","w"),  
       "so-popularity-contest\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b") );  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

解释:\b是backspace,fprintf的返回值是写成功数据的长度。

#include<iostream>  
using namespace std;  
int main()  
{  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)66<<(char)73<<(char)82;  
    cout<<(char)84<<(char)72<<(char)32;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)68<<(char)69;  
    cout<<(char)65<<(char)84<<(char)72;  
    cout<<(char)32<<(char)32<<'\n';  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)32<<(char)95;  
    cout<<(char)95<<(char)95<<(char)32;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)95<<(char)95;  
    cout<<(char)95<<(char)95<<(char)95;  
    cout<<(char)95<<(char)32<<'\n';  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)47<<(char)32;  
    cout<<(char)32<<(char)32<<(char)124;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)124<<(char)32<<(char)32;  
    cout<<(char)95<<(char)95<<(char)32;  
    cout<<(char)32<<(char)124<<'\n';  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)47<<(char)32<<(char)47;  
    cout<<(char)124<<(char)32<<(char)124;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)124<<(char)95<<(char)124;  
    cout<<(char)32<<(char)32<<(char)124;  
    cout<<(char)32<<(char)124<<'\n';  
    cout<<(char)32<<(char)32<<(char)47;  
    cout<<(char)32<<(char)47<<(char)32;  
    cout<<(char)124<<(char)49<<(char)124;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)32<<(char)47;  
    cout<<(char)50<<(char)124<<'\n';  
    cout<<(char)32<<(char)47<<(char)32;  
    cout<<(char)47<<(char)32<<(char)32;  
    cout<<(char)124<<(char)57<<(char)124;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)84<<(char)79<<(char)32;  
    cout<<(char)32<<(char)47<<(char)48;  
    cout<<(char)47<<(char)32<<'\n';  
    cout<<(char)47<<(char)32<<(char)47;  
    cout<<(char)95<<(char)95<<(char)95;  
    cout<<(char)124<<(char)53<<(char)124;  
    cout<<(char)95<<(char)95<<(char)32;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)47<<(char)48<<(char)47;  
    cout<<(char)32<<(char)32<<'\n';  
    cout<<(char)124<<(char)95<<(char)95;  
    cout<<(char)95<<(char)95<<(char)95;  
    cout<<(char)124<<(char)50<<(char)124;  
    cout<<(char)95<<(char)95<<(char)124;  
    cout<<(char)32<<(char)32<<(char)47;  
    cout<<(char)49<<(char)47<<(char)32;  
    cout<<(char)32<<(char)32<<'\n';  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)124<<(char)32<<(char)124;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)47<<(char)32;  
    cout<<(char)47<<(char)32<<(char)32;  
    cout<<(char)32<<(char)32<<'\n';  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)124<<(char)32<<(char)124;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)47<<(char)32<<(char)47;  
    cout<<(char)95<<(char)95<<(char)95;  
    cout<<(char)95<<(char)32<<'\n';  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)32<<(char)32<<(char)32;  
    cout<<(char)124<<(char)95<<(char)124;  
    cout<<(char)32<<(char)32<<(char)124;  
    cout<<(char)95<<(char)95<<(char)95;  
    cout<<(char)95<<(char)95<<(char)95;  
    cout<<(char)95<<(char)124<<'\n';  
    return 0;  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.

输出:

#include <stdio.h>  
   
#define six  1+5  
#define nine 8+1  
   
int main()  
{  
    printf("what do you get when you multiply six by nine?\n");  
    printf("%i x %i = %i\n", six, nine, six*nine);  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

解释:6 x 9 = 42 ???,如果你知道宏只是做简单的字符串替换的话,你就知道six*nine被替换成了1+5*8+1这个表达式了。呵呵。

       main(c     ,z,_){c==01?  
      main(c+     1,0,c^c):c==2  
     ?z=_["#"     "#$#%&#%#x'%%" 
    "()&(%%x"             "$%$(" 
   "(&(""*%x"             "'%%(" 
  "(&(" "+%x"             "'#%(" 
 "(&("  "%#x"             ],z ?z  
=='x'?main(4,_     ,c*5):main(c  
+1,z,0),main(c    ,z,_+1):00:c  
==3?(_+-2)==3?    main(_-1,_,  
        32):(     main(  
        c+1,c     ,((2+  
        c)*(z     -35)+  
        _)[""     "six" 
        "*ni"     "ne= {   }   " 
        "  ;"     "      _   ( " 
        ") ["     " 3 ]do {;"]==  
        32?32     :043),main(c,z  
        ,_+1)     ):putchar(_);} 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

解释:参看原文的这个答案里的How-To一节。

#p#

Brainfuck

代码混乱自然少不了brainfuck语言:(更多的奇葩的编程语言请参考《那些BT雷人的编程语言》)

   
         +++++          +++[>+>++> 
        +++>++        ++>+++++>+++++  
       +>+++++       ++>+        ++++  
      +++ >+++       ++++        ++>+  
     +++  ++++                   ++>+  
    +++   ++++                  +++> 
   +++    ++++                 ++++  
  +>+     ++++               ++++  
 +++      +>++             ++++  
++++++++>+++++++++       ++++  
++>+++++++++++++++     +<<< 
          <<<<        <<<< 
          <<<<       <-]> 
          >>>>       >>----.++++<<<<< 
          <<>>       >>>>++.--<<<<<<. 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

不过,下面这个BrainFuck更无聊,所以顶在了最佳答案上:

         +++++[>++[>+>+        ++>++++>++++>++++>++++++  
        >++++++>+++++++        ++>+++++++++<<<<<<<<<-]>> 
       >+>+>+> >>>+[<]<        -]>>       >++>-->>+>>++>+  
      >--<<<<  <<<.....         .>            ....<...... 
     ...>...   <<.>....                       >.>>>>>.<. 
     <<<<..     ..<....                      >..>>>>>.< 
    .<<<<.      >>>.<<.                     >>>>>.<.< 
    <<<<<       <.>...>                    >>>.>>>.  
   <<<.<        <<<..>>                  .>>>>>.< 
  <.<<<         <<...>>                 >>>.<<< 
 <..<.          ...>...               <<.>..>.  
 >>.<.<<...>>...<<...>>...<         <....>>..  
.<<<.>.>>..>.<<.......<....        .....>...  
               <<.>...            .....>...  
               <......           .>>>.<<.. 
               <<.>...          .....>...<......>.>>.<.<<< 
               .>......        ..>>...<<....>>.....>.<..>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

执行上面的代码,你会得到下面的输出:

     ++++         +++  
   +[>++++    ++[>+<-][  
  <]<  -]>   >++    +++  
 +.-   ---   ---    ---  
--.+++++++         +++  
       +++       .++  
       +++      +.-  
       ---    -----.--. 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

再执行上面的代码,会输出:

6*7=42 
  • 1.

如果6*9=42就完美了,就差一步啊……

(全文完)

 

原文链接:http://coolshell.cn/articles/11170.html

责任编辑:林师授 来源: 酷 壳
相关推荐

2013-11-08 09:33:04

创造力创业

2014-01-02 13:09:41

创造力编程

2024-01-05 07:36:54

人工智能创造力模型

2013-12-10 13:41:23

创造力设计

2021-01-21 21:14:53

人工智能AIOpenAI

2020-12-02 10:34:05

程序员开源技术

2019-10-29 14:01:59

CIOIT创造力商业

2013-06-24 13:56:37

创造力创意开发

2018-02-06 14:56:43

人工智能软件开发机器人

2023-11-13 14:50:53

CSS开发

2023-06-25 17:01:10

2021-02-01 11:13:54

人工智能创造力AI

2023-08-10 11:49:24

AI项目模型

2020-12-14 09:33:32

互联网数据技术

2019-05-21 19:26:36

童心制物编程儿童

2012-07-31 13:05:02

互联课堂戴尔

2023-06-25 09:38:04

GPT-4研究

2025-02-20 10:14:04

2022-10-19 11:40:42

首席信息官技术领导者

2009-02-02 14:25:45

软件 芮祥麟 SAP
点赞
收藏

51CTO技术栈公众号