問題タブ [roman-numerals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - エラーなしでコードをメソッドに分離できない
Ruby Kata (ローマ数字コンバーター) を実行していて、1 つの巨大なブロックにならないようにコードを分離しようとしています。
これが私がこれまでに持っているものです:
case ステートメントをローマ法に移動したいので、次のようになります。
メソッドを追加するとともに:
ただし、それを行って入力「XXXI」を与えると、29 の正しい出力から 10 の誤った出力に変わります。
リファクタリングされたばかりのまったく同じコードが実行されているため、なぜ動作が変わるのか想像できません。
何か案は?
ruby - Ruby-divmodは正しい値を返していますが、理由がわかりません
私はここで定義されているカタのローマ数字のコーディングに取り組んでいます。私はそれを終えて立ち往生していませんが、答えるのに助けが必要な質問があります。
ここに私の質問があります:
私がdivmodを実行すると、5という数字が表示されます。
それはVを返します。そしてそれは理にかなっています
しかし、上記のこのコードはどのように同じことをしませんか
キー(I)とカウント(5)を追加するだけなので、IIIIIではなくVをどのように返しますか。どういうわけか、IIIIIではなくVを正しく返しているのは明らかですが、そのロジックがどこにあるのかわかりません。どんな助けでも大歓迎です。ありがとう
java - Java正規表現の特殊文字
次の正規表現を使用して、文字列内のローマ数字を検索しています。
ピリオド以外の特殊文字が前後にあるローマ数字を検出するように変更するにはどうすればよいですか?
sql - データベースのページ番号としてのローマ数字
次のテーブルがあるとします。
開始ページと終了ページのフィールドは varchar であることに注意してください。これは、一般的にローマ数字で書かれている序文のページ番号を含めることができるようにするためです。
私の質問は、次のように、このテーブルを変更してアプリを作成する効果的な方法は何ですか?
- 理想的にはSQLを使用して、ページの開始と終了によってセクションを正しくソートできます
- セクションの長さをページ数で計算できます
- 特定のページ番号 (「xviii」や 475 など) が特定のセクション内にあるかどうかを判断できます
次の条件/事実に留意してください。
- ユーザーが追加情報を入力する必要はありません。たとえば、接頭辞に相当するアラビア語を計算して入力する必要はありません。
- 本の事前番号付けに関する規則が存在する場合は、それが正確に守られます (したがって、たとえば、すべてのページ番号は正しいローマ字またはアラビア語の形式で入力されます)。
- 必要なフィールドを追加したり、必要に応じて別のテーブルを追加したりできます
- これは Web アプリなので、データを挿入または表示する前に、データベース内のデータに対して前処理または後処理を行うことができます。
- セクションはオンザフライで追加または削除できます。たとえば、1 つの紹介セクションがあり、後で別のセクションが追加される場合があります。ページネーションとソートは、その本のすべてのセクションで正しく維持される必要があります。
これを異なるプラットフォームのいくつかの異なる言語で実装することになる可能性があるため、コードに依存しない疑似コードが優先されます。
明確化
私は何千ものレコードを扱っているため、並べ替えなどを行うためにプログラムですべてをループすることはできません。そのため、データベース側でいくつかの作業を行う必要があります。
njk のルックアップ テーブルのアイデアを使用すると、次のようになります。
ページ番号順に並べられたすべての本をループしたい場合。それは正しく見えますか?
考えてみると、テーブルに次の変更を加えた方が良いのではないかと思います。
上記のクエリは次のようになります。
page_start_label
次に、挿入と更新の際にローマ字とpage_end_label
ローマ字からアラビア語に値を変換するだけです。2 つの追加の整数とビットは、レコードごとに 8 バイト強の余分なストレージを意味しますが、ほとんどのレコードが空白のままpage_start_label
になると、page_end_label
実際にスペースを節約できる可能性があります!
これは合理的な解決策のように聞こえますか? または、潜在的な落とし穴/欠点を見逃していますか?
java - 整数からローマ数字への変換-Java
これは私が問題を抱えている宿題です。
メソッドを使用して、整数からローマ数字へのコンバーターを作成する必要があります。後で、プログラムを使用して1〜3999をローマ数字で書き出す必要があるため、ハードコーディングは行われません。以下の私のコードは非常に必要最低限のものです。getIntegerFromUser
これは、クラスで作成したパッケージを使用しているときに終了する方法を備えた基本的なI/Oループです。
文字列に値を割り当てて、メソッドを呼び出すときにそれらを合計する方法はありますか?
更新:教授から疑似コードを受け取って助けてもらいました。教授が何を言おうとしているif
のかは理解できますが、問題が発生しています。コンバーターがローマ数字のフォーマットを正しく処理するために、多くのif
ステートメントが必要になるのでしょうか、それともこれをより効率的に実行できる方法がありますか?プレースホルダーメソッドを反映するようにコードを更新しました。
更新(2012年10月28日):動作しました。これが私が使用することになったものです:
string - ローマ数字を対応する数字に置き換える
商品検索プラットフォームを開発しています。ユーザーが検索したものを識別する他の手段がないため、文字列の一致に基づいて最も適切な製品を最初に表示しようとします。ただし、このようなクエリには大きな問題が 1 つあります。
ユーザークエリ :: Samsung Galaxy S3
データベース値 :: Samsung Galaxy sIII
、Samsung Galaxy S III
、Samsung Galaxy s3
ご覧のとおり、ユーザーが入手できるのは上記の製品の 1 つだけです。また、ユーザーのクエリから s3 を削除すると、何千もの無関係な電話 (Samsung Galaxy シリーズ全体) がユーザーに表示されます。
そのため、残りを除外する必要があります。ローマ数字を効率的に数字に変換する方法はありますか。文字列の一致にJavascriptを使用しています。これは reg exp で実行できますか? もしそうなら、それで私を導いてください。私はそれを使用したことがありません。
この問題を解決するには、最初にローマ数字を特定し、それを対応する数値に変換する必要があることに注意してください。例1の場合、分割してIII
からsIII
変換する必要があります3
これを解決するための方法または方法は高く評価されます。
ありがとう !
numbers - プロローグは数字をローマ数字に変換します
整数をローマ数字に変換するこのコードがあります。整数をローマ数字の入力と比較し、それが try か false かを示す関数を追加する必要があります。たとえば、roman(v,5) です。真実
prolog - プロローグ-ローマ数字
Xが10進数Yのローマ数字である場合に真となるプロローグ述語数字(X、Y)を定義しようとしています。
コードを実行すると、次のエラーが発生します。
objective-c - ローマ数字を NSNumer に変換する方法
ローマ数字モードの電卓を作っています。モデルビューとビューコントローラーで操作を実行しました。私の問題は、ローマ数字を NSNumber に変換する必要があることです。UILabel があり、View Controller はラベルにあるものを取得し、それをモデル ビューのオペランドとして設定します。ラベルからローマ数字を取得して NSNumber にする方法を知っている人はいますか? ここにいくつかのコードがあります:
prolog - Prolog ローマ数字 (属性文法)
数字のリストをスキャンし、リストが有効なローマ数字であるかどうかと数字の10進数値を返す必要があるプロローグの割り当てに取り組んでいます。元)
動作するはずのプログラムを実行すると、10 進数の値は常に正しいので、合成された属性の部分は正しいと思いますが、true を返すはずの数値リストに対しては常に false を返します。また、3 つ以上の Is、X、または C が存在する場合は、中止するはずであるということも付け加えたいと思います。
N を取り出して a を投げると、{write('N = '), write(N)}
正常に動作して が返されますtrue
。
削除する{N is ValH + ValT + ValU}
と が返さtrue
れますが、10 進数値は表示されなくなります。これが私のコードの一番上の行です (これは現在の割り当てであるため、回答を得るために必要なだけ表示することをお勧めします)。
これが N では false を返すのに、N なしでは true を返すのはなぜですか?どうすれば修正できますか?
割り当て: 次の BNF 仕様は、1000 未満のローマ数字の言語を定義します。
この文法の属性を定義して、次の 2 つのタスクを実行します。
a) の X の数<low tens>
、 の I の数<low units>
、および C の<low hundreds>
数を 3 つ以下に制限します。
b)<roman>
定義されているローマ数字の 10 進値を与える属性を提供します。
これらのタスクに必要なその他の属性を定義しますが、BNF 文法は変更しないでください。