1
0

数値、文字及び文字列リテラルなしでHello Worldを出力する

Last updated at Posted at 2023-10-31

出題当時に盛り上がっていたのを思い出しました
改めて回答してみました

問題文

標準出力に Hello World と出力するプログラムを作成して下さい。

ただし、数値、文字及び文字列リテラルを解答に含めることはできません。 Perlのqqやqw、Rubyの%Q、%q、%wなども避けたほうが評価が高くなります。 言語仕様をフル活用して下さい!

ご自身で考えてみる方向けに、解答例の記述までにいくらか行を空けておきます










...








よろしいですか

解答例1

<?php

echo Hello::class,  \chr(\strlen(\md5(\PHP_VERSION))), World::class, \PHP_EOL;

解答例2

<?php

echo \base64_decode(SGVsbG8gV29ybGQK::class);

解答例3

<?php

$H=\chr(             \count([    [],[],[],[],[],[],[],[],[],[],    [],[],[],                         [],[],[],                         [],[],[],[],[],[],[],[],[],[],    [],[],[],     []     ,[],[],[]    ,[],[],[],[],[],[],[],[],[],[]    ,[],[],[],[],[],[],[],[],[],[]    ,[],[],[]                         ,[],[],[],[],[],[],[             ],[],[],[    ],[],[],[    ],[],[],[    ],]));$e=    \chr(\count    ([[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]/**************************************************************************************************/
,[],[],[             ],[],[],    [],[],[],[],[],[],[],[],[],[],    [],[],[],                         [],[],[],                         [],[],[],[],[],[],[],[],[],[],    [],[],[],    [],[    ],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[                         ],[],[],[],[],[],[],[],[]        ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],[],[],]    ));$l=\chr(\count([[],[],[],[],[],[],[],[]/*********************************************************************************************************/
,[],[],[             ],[],[],    [],[],[]                          ,[],[],[]                         ,[],[],[]                         ,[],[],[]            ,[],[],[]    ,[],[],[]   ,[],[]   ,[],[],[]    ,[],[],[]            ,[],[],[]    ,[],[],[]            ,[],[],[]    ,[],[],[]                         ,[],[],[]        ,[],[],[]       ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],[],[],[    ],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],/*******************************************/
[],]));$o=\chr(\count([[],[],    [],[],[],[],[],[],[],[],[],[],    [],[],[],                         [],[],[],                         [],[],[],            [],[],[],    [],[],[],  [],[],[]  ,[],[],[]    ,[],[],[]            ,[],[],[]    ,[],[],[]            ,[],[],[]    ,[],[],[]                         ,[],[],[]           ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],[],[],[    ],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],/*******************************************************************************/
[],[],[],[],[],[],[],[],[],[]    ,[],[],[],[],[],[],[],[],[],])    );$_=\chr                         (\count([                         [],[],[],            [],[],[],    [],[],[], [],[  ],[] ,[],[],[]    ,[],[],[]            ,[],[],[]    ,[],[],[],[],[],[],[],[],[],[     ],[],]));                         $W=\chr(            \count([[    ],[],[],[    ],[],[],[    ],[],[],[    ],[],[],[    ],[],[],[],    [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],/******************************************************************************************/
[],[],[]             ,[],[],[    ],[],[],                          [],[],[],                         [],[],[],                         [],[],[],            [],[],[],    [],[],[] ,[],[  ],[],[],[],[],    [],[],[],            [],[],[],    [],[],[],        [],[],[],        [],[],[],                         [],[],[],        [],[],[],                                                                          [],[],]));$r=\chr(\count([[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
[],[],[]             ,[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[]    ,[],[],[],[],    [],[],[],[],[],[],[],[],[],[],    [],[],[],         [],[],[],       [],[],[],]));$d=\chr(\count([[    ],[],[],[],[],[],[],[],[]        ,[],[],[]    ,[],[],[]    ,[],[],[]    ,[],/***/    /*********/    /***************************************************************************************************************************************************/
[],[],[]             ,[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[],[      ],[],[],[],[    ],[],[],[],[],[],[],[],[],[],[    ],[],[],[          ],[],[],[]     ,[],[],[],[],[],[],[],[],[],[]    ,[],]));echo$H.$e.$l             .$l.$o.$_    .$W.$o.$r    .$l.$d./*    */\PHP_EOL   ;/********/    /***************************************************************************************************************************************************/

改行やスペースは人力で入力しましたので、右端が綺麗に揃いませんでした
コメントを入れて揃えてあります

綺麗に出力できるツールとかってあるのでしょうか

解答例4

Hello World

当時話題だった中で、強烈だった解答例です
確かにそうだ。PHPってすげえだ。自分で気付きたかっただ

(ただし、出題者からの評価は高くありません)
(また、開始タグありが前提になっている実行環境では動きません)

このときは仕事でPHPを使ってませんでした
後年使うことになろうとは、もちろん知るよしもありません
というかこの業界にもいなかったような。記憶が曖昧です

おわりに

この記事では以前話題になったCodeIQの問題を紹介しました
とっつきやすいながらひと工夫が必要で、楽しめる問題でした

それではごきげんよう

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0