タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

30
砂時計を描く
プログラミング101のタスクに触発されたのは、もう1つの課題です。 入力: 正の整数n >= 3。(奇妙でなければならない) 出力: nアスタリスクの行。最初の行にはnアスタリスクがあり、すべての新しい行には前の行よりも2つ少ないアスタリスクがあります。アスタリスクを1つ押すまで。そこから、nアスタリスクに戻るまで、すべての新しい行には前の行よりも2つのアスタリスクが付いています。スペースまたはスペースのようなものを使用して、実際に砂時計のように見えるようにアスタリスクを揃える必要があります。 一般的なルール: 末尾の改行は許可されますが、使用する必要はありません。 インデントは必須です。 これはコードゴルフなので、バイト単位の最短回答が勝ちです。 このコースはC ++で教えられているので、C ++で解決策を見たいと思っています。 テストケース(n = 5): ***** *** * *** *****

14
配列エスケープ-そこから出て
ある日、目を覚まして、自分がアレイに巻き込まれているのを見つけます。そこから出て、一度に1つのインデックスを取得しようとしますが、他のルールがあるようです。 配列は自然数で完全に埋められます。 インデックスに自分自身を見つけた場合 nにいる場合は、index array[n]に移動しますが、次の場合を除きます。 あなたがn素数であるインデックスに自分自身を見つけた場合、あなたはarray[n]戻ってステップを取る 例:4この配列のindex から開始します(開始インデックスは0): array = [1,4,5,6,8,10,14,15,2,2,4,5,7]; -----------------^ you are here 現在のフィールドの値は8なので8、最初のステップとしてインデックスに移動します。着陸するフィールドには値が含まれています2。次に2、2番目のステップとしてインデックスに移動します。以下のよう2素数である、あなたはあなたの第三段階である、バックの5つのステップを取ります。インデックスがないため-3、合計3ステップで配列を正常にエスケープしました。 あなたの仕事は: パラメータとして配列と開始インデックスを受け取り、配列をエスケープするためのステップ数を出力するプログラムまたは関数を作成します。配列をエスケープできない場合(たとえば[2,0,2]、start-index 2=>を使用すると、常にインデックスから移動します)2からに0)、偽の値を出力します。1ベースのインデックス付けまたはゼロベースのインデックス付けを使用できますが、使用するものを指定してください。 テストケース 入力: [2,5,6,8,1,2,3], 3 出力: 1 入力: [2, 0, 2], 2 出力: false 入力: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5 ; 出力: 6 最短の答えが勝ちです。

5
ASCIIアートを斜体にする
ASCIIアート画像の入力が与えられた場合、ASCIIアートを斜体で出力します。 ASCIIアートを斜体にするには: 最後の行の前にゼロスペース、最後から2番目の行の前に1スペース、最後から3番目の行の前に2スペースを挿入します。 作成された可能性のある余分な先行空白を削除します。つまり、各行のn前に少なくともスペースがある場合は、各行nの先頭からスペースを削除します。 すべて置き換え\秒で|、すべて|との/、およびすべて/のと_。既存_のものを同じにしてください。 入力には、文字\|/_とスペースのみが含まれることが保証されています。 たとえば、入力 /\/\/\ /\/\/\ /\/\/\ /\/\/\ /\ /\ /\ /\ /\ /\ /\/\/\ /\/\/\ /\ /\ /\/\ /\ /\ /\ /\ /\ /\ /\ /\/\/\ /\/\/\ 出力する必要があります _|_|_| _|_|_| _|_|_| _|_|_| _| _| _| _| _| _| _|_|_| _|_|_| _| _| _|_| _| _| _| …

5
爆弾の連鎖反応
前書き: タスクの前に、すべての要素がマップ上で行うことを以下に示します。 平地(X):これは何もしません。 破壊された土地(-):これは平地と同じですが、爆弾によって破壊されました。 アクティブな爆弾(!):マップ上で、これは3x3の正方形のすべてを破壊します。 XXXXX XXXXX XXXXX X---X XX!XX > will become > X---X XXXXX X---X XXXXX XXXXX 受動爆弾(@):別の爆弾で爆発するまで何もしません。これには、3x3の正方形の爆発半径もあります。 XXXXX XXXXX XXXXX XXXXX XX@XX > will become > XX@XX (nothing happened) XXXXX XXXXX XXXXX XXXXX しかし: XXXXX XXXXX XXXXX X---X XX@XX > will become > ----X (both bombs have …

30
シルベスターの配列
シルベスターのシーケンスOEIS A000058は、次のように定義された整数シーケンスです。 各メンバーは、以前のすべてのメンバーに1を加えたものです。シーケンスの最初のメンバーは2です。 仕事 nを取り、Sylvesterのシーケンスのn番目の項を計算する可能な最小のプログラムを作成します。標準の入力、出力、抜け穴が適用されます。結果は非常に急速に成長するため、選択した言語で結果がオーバーフローを引き起こすような用語を取ることは期待されていません。 テストケース ゼロまたは1つのインデックスを使用できます。(ここではゼロインデックスを使用しています) >>0 2 >>1 3 >>2 7 >>3 43 >>4 1807

6
十字架のみの三目並べ
前書き 誰もが三目並べというゲームを知っていますが、この課題では少しひねりを加えます。十字架のみを使用します。3つの十字架を連続して配置した最初の人が負けます。興味深い事実は、誰かが負ける前の最大クロス数は6に等しいことです: X X - X - X - X X つまり、3 x 3ボードの場合、最大量は6です。したがって、N = 3の場合、6を出力する必要があります。 別の例、N = 4、または4 x 4ボードの場合: X X - X X X - X - - - - X X - X これは最適なソリューションです。クロスの最大量は9に等しいことがわかります。12 x 12ボードの最適なソリューションは次のとおりです。 X - X - X - X X - X …

30
2進数から10進数へのコンバーター
2進数から10進数へのコンバーター 私の知る限り、単純な2進数から10進数への変換の課題はありません。 正の2進整数を取り、その10進値を出力するプログラムまたは関数を作成します。 組み込みの基本変換関数を使用することはできません。整数対小数機能(例えば、ターンその関数101010に[1, 0, 1, 0, 1, 0]又は"101010")この規則から除外され、したがって、可能にしました。 ルール: コードは、言語がサポートする最大の数値までの2進数をサポートする必要があります(デフォルト) バイナリ表現で先行ゼロを選択することもできます 10進出力には先行ゼロがない場合があります。 入力形式と出力形式はオプションですが、数字の間に区切り文字を含めることはできません。(1,0,1,0,1,0,1,0)有効な入力形式ではなく、両方10101010と(["10101010"])しています。 「通常の」方向で入力を取得する必要があります。1110ではあり14ません7。 テストケース: 1 1 10 2 101010 42 1101111111010101100101110111001110001000110100110011100000111 2016120520371234567 この課題は、他のいくつかの課題、たとえばthis、this、thisに関連しています。

30
repdigitを取得するにはどうすればよいですか?
私が数時間前にこの挑戦を最初に考えたとき、私がどれだけ多くの担当者を持っていたかに敬意を表して: 1桁の繰り返しで構成されるこのような番号は、repdigitsと呼ばれます。Repdigitsは楽しいです!すべてのボディは、彼らが持っていた担当者の量がぞろ目であった場合、より幸せになる¹が、あなたは私がぞろ目に取得するための最速の方法を見つける手助けする必要があるので、私は、せっかちです。 ここにあなたの挑戦があります: レピュテーションを表す正の整数が与えられた場合、repdigitに到達するために獲得する必要のある最小量の担当者を出力します。たとえば、この課題の執筆時点で、ユーザーMartin Enderの担当者は102,856人でした。最も近いrep-digitは111,111なので、彼は得る必要があります:repdigitになるには8255 rep。 人々が担当者を失うことを嫌うので、ネガティブでない変更のみを考慮します。これは、たとえば、1人の担当者を失うのではなく、12人の担当者がいる場合、解決策は10人の担当者を獲得することであることを意味します。111 repを持っている人はすでに repdigitにいるので、これにより「0」が有効な出力になります。 入力と出力は任意の合理的な形式であり、Stack Exchangeサイトで担当者を1人未満にすることはできないため、入力が1未満になることはないと想定できます。 注意すべき1つのコーナーケース: ユーザーの担当者が10人未満の場合、すでに担当者がいるため、「0」も必要です。 テストIO: #Input #Ouput 8 0 100 11 113 109 87654321 1234567 42 2 20000 2222 11132 11090 標準的な抜け穴が適用され、バイト単位の最短ソリューションが勝ちます!
32 code-golf  math  number 

9
対角線を回転させる
バックグラウンド ほとんどの合理的なプログラミング言語では、2D配列の行または列を簡単に回転できます。この課題では、代わりに対角線を回転させることがタスクです。2D配列の対角線は、北東方向に取られた1Dスライスであることに注意してください。 入力 妥当な形式の1桁の数字の空でない長方形の2D配列。配列は正方形ではないことに注意してください。 出力 同じ配列ですが、各対角線が1ステップ右に回転しています。 例 3x4入力配列を考えます 0 1 2 3 4 5 6 7 8 9 0 1 この配列の対角線は 0 4 1 8 5 2 9 6 3 0 7 1 回転したバージョンは 0 1 4 2 8 5 3 9 6 7 0 1 したがって、正しい出力は 0 4 5 …

4
マインスイーパボードの反転
マインスイーパは人気のあるコンピューターゲームで、おそらくプレイに時間を浪費しているので、各非地雷セルがいくつの隣接地雷を持っているかのヒントに基づいて、長方形のグリッド内の地雷であるセルを明らかにしようとします。また、まだプレイしていない場合は、ここで行います。 マインスイーパグリッド(ボード)についての気の利いた数学的な事実は、次のとおりです。 ボードとその補数の鉱山総数は同じです。(証明) つまり、マインスイーパグリッドが完全に表示されている場合、そのグリッド上のすべての数値の合計、つまり鉱山の合計は、グリッドの補数の鉱山の合計、つまりすべての鉱山が置き換えられたグリッドに等しくなります非地雷とすべての非地雷が地雷に置き換えられました。 たとえば、マインスイーパグリッドの場合 **1.. 34321 *2**1 鉱山の合計は1 + 3 + 4 + 3 + 2 + 1 + 2 + 1 = 17です。 グリッドの補数は 24*** ***** 3*44* 合計で2 + 4 + 3 + 4 + 4 = 17になります。 任意のマインスイーパグリッドをテキスト形式で取り込むプログラムを作成します。ここで*は、地雷を表し、地雷は非地雷セルに隣接する地雷の数1を8表します。.または0または (スペース)を使用して、私の隣人のいないセルを選択できます。入力グリッドに正しくマークが付けられていると想定できます。つまり、各非地雷セルは、それに隣接する地雷の合計数を、直交または斜めに正確に示します。 あなたのプログラムが同じ形式でグリッドの補数を印刷する必要があります(これを用いた.、0または あなたが入力に期待されるような)。 バイト単位の最短コードが優先されます。 プログラムの代わりに、入力グリッドを文字列として受け取り、補数グリッドを出力または返す関数を作成できます。 入力または出力の末尾の改行は問題ありませんが、グリッドを形成する文字以外の文字は他にないはずです。 1×1グリッドが最小の入力であると想定できます。 テストケース 補数の補数が元のグリッドであるため、すべての入力と出力を交換できます。グリッドは、さらにテストケースのために回転させることもできます。 …

30
合計無料のセットですか?
セットは、一緒に追加されたときに2つの(必ずしも別個ではない)要素がセット自体の一部でない場合、合計がありません。 たとえば、{1, 5, 7}すべてのメンバーが奇数であり、合計2つの奇数が常に偶数であるため、合計は無料です。一方、セットのメンバーの{2, 4, 9, 13}いずれか2 + 2 = 4または合計として、合計はありません4 + 9 = 13。 入力としてセットを受け取り、セットが和のない場合はTruthy値を出力し、そうでない場合はFalsyを出力するプログラムまたは関数を作成します。 例: Sum-free: {} {4} {1, 5, 7} {16, 1, 4, 9} Not sum-free: {0} {1, 4, 5, 7} {3, 0} {16, 1, 4, 8}

20
クリスマスにどれくらいプレゼントをもらいましたか?
はい、いくらで、いくらではなく... ご存知のように、大きなプレゼントは小さなプレゼントよりもはるかに優れています。したがって、プレゼントの価値は、プレゼントの数、重量、または組み合わせた価格ではなく、常に総量で測定する必要があります。 プレゼントの量を比較するのは面倒くさいので、クリスマスパーティーで他の人が簡単に見たり読んだりできる長いスクリプトは必要ありません。したがって、スクリプトのバイト数を最小限に抑える必要があります。 あなたのタスクは簡単です:次元のリストを入力として適切な形式で受け取り、プレゼントの合計量を出力するプログラムを作成します。各プレゼントの次元は、3つの数字のセットまたは単一の数字のいずれかです。入力が3つの数値(L, W, H)の場合、現在は次元の直方体ですL x W x H。単一の数値(R)の場合、現在の半径はsphereですR。 ルール: 完全なプログラムまたは関数のいずれかです 入力は任意の便利な形式にすることができます 必要に応じて、球体は数字とそれに続く2つのゼロで表すことができます。 直方体は常にすべてゼロ以外の次元を持ちます。 出力は単一の10進数でなければなりません 答えが明らかである限り、追加の出力が受け入れられます 出力には、小数点の後に少なくとも2桁が必要です。 数値が1000を超える場合、出力は標準形式/科学表記法になります。 言語にPi定数がない場合、答えは9999.99まで正確でなければなりません。 例: ((1,4,3),(2,2,2),(3),(4,4,4)) 197.0973 // (1*4*3 + 2*2*2 + 4/3*pi*3^3 + 4*4*4) (5) 523.5988 (5,0,0) 523.5988 リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes …

4
テンキーで名前を入力してください
パズル: 並べ替えの名前を入力する必要があるd-padを備えたコンソール/ハンドヘルドゲームを検討してください。これは、コンソールでQWERTYの使用が普及する前に多くの古いゲームに登場しました(たとえば、Wiiは入力にQWERTYキーボードレイアウトを使用していると思います)。通常、オンスクリーンキーボードは次の効果を見ます*: デフォルト: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ + ^ = ケースを切り替えた場合: 0 1 2 3 4 5 …
32 code-golf 

3
FizzBu​​zzリバースソルバー
概要:一般化されたFizzBu​​zzプログラムの出力が与えられると、プログラムに使用される要因と単語のリストを返します。 チャレンジの説明 使用する要素と単語のリスト、および開始する数を入力として取り込む一般化されたFizzBu​​zzプログラムを想像してください。たとえば、このプログラムの入力が 3 2,Ninja 5,Bear 7,Monkey プログラムから番号をプリントアウトするだろう3と100割り切れる数字に置き換える、2とNinja、数字が割り切れる5とBear、数字がで割り切れる7とMonkey。割り切れる数の場合、それらの用語の複数の場合、プログラムは、単語を連結し、NinjaBearor BearMonkeyやNinjaMonkeyorなどの内容を出力しNinjaBearMonkeyます。その入力の出力は次のとおりです。 3 Ninja Bear Ninja Monkey Ninja 9 NinjaBear 11 Ninja 13 NinjaMonkey Bear Ninja 17 Ninja 19 NinjaBear Monkey Ninja 23 Ninja Bear Ninja 27 NinjaMonkey 29 NinjaBear 31 Ninja 33 Ninja BearMonkey Ninja 37 Ninja 39 NinjaBear 41 NinjaMonkey 43 …
32 code-golf 

9
シーソーで一連の重みのバランスをとる
綱渡り 概要 重みのセットを表す3つの1桁の正の整数の入力が与えられた場合、レバーの効果を考慮して、中央のピボットの周りでバランスが取れるように、重みが配置されたシーソーのASCII表現を出力します。 各数値には、その値に等しい重みがあります。各数値のトルクは、重量にその中心からの距離を文字で乗算したものです。シーソーのバランスを保つために、シーソーの左側のウェイトの合計トルクは、このように右側のウェイトの合計トルクと等しくなければなりません。 入力 1〜9の範囲の3つの整数。ただし、タプル、3つのコンマ区切り値など、整数を入力するのは便利です。ただし、プログラムは任意の順序で数値入力を処理できる必要があります(つまり、値がソートされることを前提としない)。重複する番号を入力できます(2,3,2など)。 入力は常に数学的に有効な出力を許可します。そうでない場合、入力は無効です。 出力 出力は、シーソーの2行のASCII表現で、重みが設定されている必要があります。最初の行には数字があり、シーソー上でバランスを取るために間隔が空いています。 距離はトルクのゼロになる、スケールの真ん中に数字を配置することはできません。ピボットの左または右を含む1〜10文字の中心範囲からの有効な距離。 数字で占められていないスペースには、18個の下線文字があります(中央のアンダースコアと各辺に10個あり、数字で占められている3つの位置を差し引いています)。最後の行には、ピボットを表すスケールの中心に揃えられた単一のキャレット文字があります。 例 入力: 4,7,2 出力: ________7___42_______ ^ 7 * 2 = 4 * 2 + 2 * 3 数値はどちらの側にも出力できます。たとえば、これも有効です。 _______24___7________ ^ 2 * 3 + 4 * 2 = 7 * 2 数字は、バランスが取れている限りはかりのどこにでも配置できます。例: 入力: 3,1,5 出力: _____5________1__3___ ^ 5 * …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.