challenge Hello, world!その2

「Hello, world!」と表示するプログラムを作ってください。 ただし、コード中に同じアルファベットが2回出現してはいけません。

アルファベットとは、小文字のa-zと大文字のA-Zを指すものとします。また、大文字と小文字は区別するものとします。つまり、記号や空白文字は何度出現しても構いませんし、小文字のgと大文字のGの両方を使うのは構いません。

単純な「print "Hello, world!"」はrとoとlが2回以上使われているので題意を満たしません。

この問題はHello, world!の上級編です。

HSP では文字列以外の大文字小文字の区別がないので、区別しないでやってみました。”いかれ具合”は高いと思います。小さなウィンドウが 34 個出ますので、実行するときは気をつけてください。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
_0(   0 ) =  31,  13,  11,  73,  38,  44,  48,   8,  78,  16,  11,  69
_0(  12 ) = 111,  51,  37,   9, 138,  35,  10,  22, 112,  28,  32,  11
_0(  24 ) = 108,  33,  10,  46, 110,  74,  30,  10, 161,  10,   9,  74
_0(  36 ) = 193,   9,   9,  72, 228,  32,  27,   9, 249,  37,  12,  39
_0(  48 ) = 225,  76,  31,  10, 221,  36,  10,  44, 273,  77,  15,  11
_0(  60 ) = 280,  84,   7,  14, 335,  44,   9,  40, 359,  33,  12,  51
_0(  72 ) = 338,  80,  53,   9, 383,  47,  14,  45, 412,  36,  31,   8
_0(  84 ) = 438,  39,   9,  43, 412,  78,  29,   7, 405,  41,  12,  40
_0(  96 ) = 461,  34,   9,  53, 464,  44,  29,  10, 503,  10,   8,  73
_0( 108 ) = 564,  10,  10,  78, 540,  40,  28,   9, 532,  45,  11,  39
_0( 120 ) = 536,  76,  32,  10, 592,  13,  12,  52, 591,  75,  14,  12

_1 = 0
do
    bgscr _1 + 1, _0( _1 + 2 ), _0( _1 + 3 ), 0, _0( _1 + 0 ), _0( _1 + 1 )
    _1 += 4
until _1 > 128

Posted feedbacks - JavaScript

我ながらいけてない>< JavaScript でこれは難しかった。
1
_='\\u00';$='rtcf';eval(_+61+_+'6'+$[2]+_+65+$[0]+$[1]+'("'+_+48+_+65+_+'6'+$[2]+_+'6'+$[2]+_+'6'+$[3]+', '+_+77+_+6+$[3]+$[0]+_+'6'+$[2]+_+64+'!")');

おなじく JavaScript
1
2
_=['e','a','\x72','o','C'];
[][_[0]+'v'+_[1]+'l'](String['f'+_[2]+_[3]+'m'+_[4]+'h'+_[1]+_[2]+_[4]+_[3]+'d'+_[0]](97,108,101,114,116,40,34,72,101,108,108,111,44,32,87,111,114,108,100,33,34,41))

eval 使わない版
1
2
3
$=this;
_=['a','e','r','\x74','\u0069','o','C'];
$[_[0]+'l'+_[1]+_[2]+_[3]]($['S'+_[3]+_[2]+_[4]+'ng']['f'+_[2]+_[5]+'m'+_[6]+'h'+_[0]+_[2]+_[6]+_[5]+'d'+_[1]](72,101,108,108,111,44,32,87,111,114,108,100,33))

目指せ最短。『表示する』の意味に少し迷った。
1
alert(['\110\145\154\154\157\54\40\167\157\162\154\144\41']);

こうしたほうがさらに短くなるのではないでしょうか
1
alert('H\145\154\154o, w\157\162\154d!');

data スキームを使っているので、 IE では動きません。 e がちょっと不恰好かも。 ところで皆さんは、文字列をどのようにして 8進数に変換しているのでしょうか?
1
eval('\144\157\143\165\155\145\156\164\56\167\162\151\164\145\50\47\74\151\155\147\40\163\162\143\75\144\141\164\141\72\151\155\141\147\145\57\147\151\146\73\142\141\163\145\66\64\54\122\60\154\107\117\104\154\150\112\167\101\106\101\111\101\101\101\120\57\57\57\167\101\101\101\103\167\101\101\101\101\101\112\167\101\106\101\101\101\103\111\167\167\143\145\121\166\164\104\66\106\160\103\103\60\67\157\64\66\65\161\157\121\144\103\165\126\64\61\57\127\106\160\110\161\107\157\64\160\71\161\110\127\113\71\110\167\125\101\104\163\75\76\47\51\73');

Index

Feed

Other

Link

Pathtraq

loading...