このプログラミングパズルは、昨日ここで質問されたが、作者によって削除された別の質問に触発されました...
チャレンジ:
Visual C#(またはお気に入りのC#IDE)を使用して実行可能バイナリ(Windows .EXEまたはLinuxバイナリ)を作成します。これにより、次のテキストが標準出力に出力されます。
Main() is the main method of C# programs!
...ソースファイルに表示される4つの連続する文字MAINを使用せずに
ノート:
- ソースコードにテキストが含まれている場合
remainder
(たとえば)、4つの連続した文字MAINが含まれmxain
ていますが、4つの文字が含まれている場合、連続していないためmxain
許可されます。 C#IDE以外のプログラムを実行することは許可されていません。また、C#IDEの設定を変更して他のプログラムを実行することもできます(ただし、C#コンパイラなど、通常は実行されるプログラム)。
それ以外の場合は、「C#IDEを使用してPascalプログラムを作成し、C#プロジェクトの「事前ビルド」ステップでPascalコンパイラーを呼び出す」と簡単に言うことができます。
これは単純すぎるでしょう。
「プラグイン」(または同様のもの)を使用して拡張できるIDEのユーザー、または組み込みのバイナリファイルエディター(16進数エディター)を持つIDEは、他のC#IDEのユーザーに比べて非常に大きな利点があります。
したがって、これらの機能も使用しないでください。
- 他の非ASCIIエディター(ダイアログウィンドウエディターなど)の使用は明示的に許可されています!
- このように関数名にバックスラッシュを使用して提案された元の質問をするユーザー:
static void M\u0061in()
この回答はすでに他のユーザーによって読まれているため、これ以上は受け入れられません! - ユーザーは、ソースコードエディターに.EXEファイルを単に入力して、「。cs」ではなく「.exe」としてファイルを保存することを許可するかどうかを尋ねました。回答:有効なWindowsとLinuxの両方のバイナリにNULバイトが含まれているため、これが可能であることは間違いありません。ただし、この方法で作成できる有効なバイナリが見つかった場合は、有効なソリューションがあります。
このサイトの名前は「Programming Puzzles & Code Golf」です。これは「Code Golf」ではなく「Programming Puzzle」です。課題は、他のすべてのユーザーより先に実用的なソリューションを見つけることであり、他のすべてより短いソリューションを見つけることではありませんソリューション。
したがって、有効なソリューションを説明する最初の投稿が勝利します。
幸運を!
ちなみに、私はVisual C#Express 2010で動作するソリューションを持っています。