セットアップ:
ソーシャルネットワークは、投稿の投票数を2つの方法で報告します:純投票数(総投票数-総投票数)と、投票数の割合(最も近い整数に切り上げ)(0.5切り上げ)。正味の投票数は整数(必ずしも正とは限らない)であり、2番目は0から+100までの整数であることが保証されています。アップ投票の数とダウン投票の数は、どちらもゼロまたは正の32ビット整数です(符号付きまたは符号なしを指定できます)。総投票数がゼロの場合、投票率はゼロとして報告されると仮定します。
チャレンジ:
これらの2つの整数(ネットのアップ投票と%のアップ投票)が与えられた場合、上記のすべての制約が満たされた状態で、投稿が受け取った総アップ投票の最小数を決定する最短のプログラムはどれですか?
入力制約が保証されています。入力が上記の制約を満たさない場合、プログラムの動作はユーザー次第です。無限ループに入ったりクラッシュしたりしなければ、賞賛に値します。さらにガイダンスが必要な場合は、負の数を返すことを検討してください。
一般的なルール:
- これはcode-golfであるため、最短の有効なソリューション(バイト単位で測定)が勝ちます。
- コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。Javascriptのようなクライアント側のWeb言語の賞賛。
- 複数の言語で興味深いソリューションがある場合は、それらを個別に投稿してください。
- 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型を使用した関数/メソッド、または完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、コードの動作方法の説明を追加してください。
- roundsではなく切り捨てる整数除算演算(たとえば20/3 = 6)を実行している場合、それは完全に正しいとは限らないことに注意してください。
- 上記の制約のエッジケースを調査する追加のテストケースを歓迎します。
- 期待される戻り値のタイプは数値ですが、ブールの「false」を0の代わりに使用できます。
テストケースの例:
最初の列は、議論を容易にするために含まれている単なる参照番号です。
ref net %up answer
1 0 0 => 0
2 -5 0 => 0
3 -4 17 => 1
4 -3 29 => 2
5 -2 38 => 3
6 -1 44 => 4
7 0 50 => 1
8 5 100 => 5
9 4 83 => 5
10 3 71 => 5
11 2 63 => 5
12 1 56 => 5
13 1234 100 => 1234
14 800 90 => 894 (tip: don't refer to this as the "last test case;" others may be added.)
1000, 100
。予想される答えが正しいことを確認できます1000
か?