Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの有理数の合計としての有理数の分解


問題

正確に2つの数値の配列を受け取るJavaScript関数を作成する必要があります。

最初の要素は任意の有理数の分子を指定し、2番目の要素はその分母を指定します。

この関数は、それぞれ2つの要素の任意の数のサブ配列の配列を返す必要があります。これにより、サブ配列で指定された有理数が加算されると、入力された有理数に合計され、すべてのサブ配列の分子は1になります。

>

また、サブアレイの数をできるだけ少なくする必要があります。

以下はコードです-

const num = '2/3';
const decompose = (num = '') => {
   const fractions = [];
   let res = eval(num);
   if (res >= 1) {
      fractions = ['' + Math.floor(res)];
      res = res - Math.floor(res);
   };
   let sum = 0;
   let denom = 2;
   while (sum <= res - 0.000000001) {
      if (1 / denom + sum <= res) {
         fractions.push("1/" + denom);
         sum += 1 / denom;
      }
      denom++;
   }
   return fractions;
}
console.log(decompose(num));

出力

以下はコンソール出力です-

[ '1/2', '1/6' ]

  1. JavaScript数値関数

    JavaScript Number()関数は、引数として渡されたオブジェクト値をそれぞれの数値に変換します。 以下は、JavaScript Number()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &

  2. JavaScriptの番号パターン

    ユーザーにテキスト入力とボタンを提供するJavaScriptおよびHTMLプログラムを作成する必要があります。ユーザーが入力に任意の値(たとえば5)を入力してボタンをクリックすると、画面に次のパターンが印刷されます。 (n =5の場合) 01 01 02 01 02 03 01 02 03 04 01 02 03 04 05 例 このためのコードは-になります <html> <head> <title>JavaScript Number Patterns</title> <script type="text/javascrip