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

JavaScriptでnまでの1の数を数える


正の整数、たとえばnumを受け取るJavaScript関数を作成する必要があります。

この関数のタスクは、nまでのすべての正の整数(1が含まれている場合はnを含む)に現れる1の総数をカウントすることです。

その後、関数は最終的にこのカウントを返す必要があります。

例-

入力番号が-

の場合
const num = 31;

その場合、出力は-

になります。
const output = 14;

に1が表示されるため、

1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 31

以下はコードです-

const num = 31;
const countOnes = (num = 1) => {
   if(num <= 0 ){
      return 0
   };
   let sum = 0
   num += '';
   let helper = p => {
      let leftNum = 0
      let rightNum = 0
      let di = num[p]
      if(p>0){
         leftNum = parseInt(num.slice(0,p))
      }
      if(p+1 < num.length){
         rightNum = parseInt(num.slice(p+1))
      }
      if(di > 1){
         sum += (leftNum+1)*(10**(num.length-1-p))
      } else if(di == 0){
         sum += (leftNum)*(10**(num.length-1-p))
      } else{
         sum += (leftNum)*(10**(num.length-1-p)) + rightNum + 1
      }
   }
   for(let i =0; i < num.length; i++){
      helper(i)
   };
   return sum;
};
console.log(countOnes(num));

出力

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

14

  1. JavaScriptで2つのIPアドレスの間に存在するIPアドレスの数を数える

    問題 2つのIPv4アドレスを受け取り、それらの間のアドレスの数(最初のアドレスを含み、最後のアドレスを除く)を返すJavaScript関数を作成する必要があります。 これは、それらを10進数に変換し、それらの絶対差を見つけることによって実行できます。 例 以下はコードです- const ip1 = '20.0.0.10'; const ip2 = '20.0.1.0'; const countIp = (ip1, ip2) => {    let diff = 0;    const aIp1 = ip1.s

  2. JavaScriptで回文数を作成するためのステップを数える

    問題 最初で唯一の引数として数値numを受け取るJavaScript関数を作成する必要があります。 私たちの関数は、回文を取得するために必要な特別なステップの数を返す必要があります。特別な手順は、「数字を逆にして、元の番号に追加する」です。結果の数が回文ではない場合は、結果の数が回文になるまで合計を使用して手順を繰り返します。 たとえば、関数への入力が-の場合 入力 const num = 87; 出力 const output = 4; 出力の説明 関係する手順は-であるため 87 + 78 = 165; 165 + 561 = 726; 726 + 627 = 1353