この挑戦は、本当の(そして悲劇的な)インスピレーションによってもたらされます。最近、キーボードの数字列が少し散発的になりました。キーは1-9
時々機能しますが、それ以外の場合は結果がありません。熱心なプログラマーとして、これは恐ろしいことです!(その感嘆符を参照してください。それは、彼らが現在動作していることを知っている方法です。)数字自体だけでなく、記号もしばしば必要です。!@#$%^&*(
半分の時間でも完全に無効です!Cプログラマーとして、ラップトップを修正するコードをいじくり回すという忙しいスケジュールから時間をとるのではなく、私はこの問題の回避にもっと興味を持っています。過去数週間にわたって、コード内の数字リテラルはすべてゆっくりと16進数に置き換えられたため、コピーして貼り付けるために数字を探し回る必要はありません。ただし、一部の数字は、キーなしでは簡単に入力できません1-9
。たとえば、数字1
を16進数で簡単に記述することはできません。1
コード内のs をに置き換えました0xF - 0xE
。影響を受けている唯一のキーがある1-9
ので、私はのようなシンボルの完全な使用を維持し+
、-
と/
。ただし、乗算または括弧は使用できません。*
そして(
、しばしば壊れています。これはあなたの挑戦につながります。
入力
n
標準入力または使用言語の同等の整数。必要に応じて、整数の前または後に改行または他の空白文字を追加できます。または、コマンドライン引数を介して入力を受け取ることもできます。
プログラムは負の入力に正しく応答し、少なくとも32ビットの符号付き整数を処理できる必要があります。
出力
プログラムは、数n
を1つ以上の16進値の合計、差、または除算として書き込むための、最短の(空白文字以外の)方法を、観察可能な形式で出力する必要があります。この問題を解決する方法は複数あり、同じ長さの出力を他の出力よりも優先する必要はありません。
出力の形式にする必要があり、次の16進数値である数字だけを含有し、そしてシンボルの一つです。浮動小数点ではなく、整数除算について説明しましょう。A % A % A...
A
0x
A-F a-f
%
-+/
/
(出力n
は、慣例のように、最初に左から右に除算を評価し、次に左から右に加算と減算を評価するときに結果になることに注意してください。)
テストケース
入出力
1
0xF - 0xE
(または0xF-0xE
または0xB-0xA
または0xd - 0xc
または0xF/0xF
)15
0xF
255
0xFF
30
0xF + 0xF
スコアリングとルール
これはコードゴルフです。予備スコアは、ソースファイルのバイト数です。
1-9
ソースで数字を使用することはできません。
!@#$%^&*(
ソースでシンボルを使用できますが、それぞれのスコアに+20のペナルティが課せられます。
プログラムはn
、その関数が人間が読める形式の出力を生成する限り、引数として受け取る関数に置き換えられます。関数の戻り値は出力としてカウントされません。
標準の抜け穴は許可されていません。
最低スコアが勝ちます!がんばろう!
書式設定/質問/明確さに関して何か問題がありましたか?お知らせ下さい!これはこのサイトへの私の最初の提出です!