警告:これは「ちょっと、ASCIIアートでケーキを描いてみよう」チャレンジではありません!読み続けてください;)
少し前に私の誕生日でした、私は今33歳です。
そのため、家族や友人を招待し、数字のようなろうそくをケーキの上に置いたり、歌を歌ったり、プレゼントを贈ったりする、この厄介な社会的伝統があります。
33
--------
数字の代わりに、バイナリシステムを使用して標準のキャンドルを置くことができます。6本をケーキの上に置き、2本を点灯します。
100001
--------
私の年齢の10進数と2進数の両方が回文的であることがわかります!
チャレンジ
他の数字をキャンドルでケーキに付けて、回文、10進数、2進数にすることができるかどうかを知りたいです。
数値が10進数と2進数の両方で回文的かどうかをテストするプログラム/関数を作成します。しかし、待ってください、もっとあります:バイナリでは、テストのために先行ゼロがカウントされます!
入力
0 <x <2 32 -1の誕生日回文であるかどうかをテストする10進数x (はい、私の次元の人々は非常に長生きしています)
出力
これらの2つの条件を完全に満たす場合は真実です。それ以外の場合は偽です。
- 数値の10進表現は標準的な回文です
- 数値のバイナリ表現は標準的なパリンドロームであり、先行ゼロを追加するとこれに役立つ場合があります
テストケース
1 > 1 => Truthy
6 > 110 (0110) => Truthy
9 > 1001 => Truthy
10 > 1010 (01010) => Falsey, 10 is not palindromic
12 => 1100 (001100) => Falsey, 12 is not palindromic
13 => 1101 (...01101) => Falsey, neither 13 nor 1101 are palindromic
14 => 1110 (01110) => Falsey, 14 is not palindromic
33 > 100001 => Truthy
44 > 101100 (..0101100) => Falsey, 101100 is not palindromic
1342177280 > 1010000000000000000000000000000 (00000000000000000000000000001010000000000000000000000000000) => Falsey, 1342177280 is not palindromic (but the binary representation is)
297515792 > 10001101110111011101100010000 (000010001101110111011101100010000) => Truthy
ルール
- 標準の抜け穴は許可されていません
- 組み込みライブラリの変換とテストが許可されています
- これはcode-golfで、最短のコードが勝ちです!
幸運を祈り、最終的にはお誕生日おめでとう!
0b01010000000000000000000000000000
追加するゼロがさらに必要であり、したがって2 ^ 32-1を超えるため、回文的ではありませんか?この場合1342177280
、偽のテストケースのようなものを追加すると役立ちます。
1342177280
10進回文ではないのでFalseyです。編集