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

JavaScriptの単調な数字でちょうど小さい数


単調に増加する数字

隣接する数字xとyの各ペアがx<=yを満たす場合に限り、整数は単調増加する数字を持ちます。

問題

最初で唯一の引数として数値numを受け取るJavaScript関数を作成する必要があります。

この関数は、単調に増加する桁でnum以下の最大数を見つけるだけです。

たとえば、関数への入力が

入力

const num = 332;

出力

const output = 299;

以下はコードです-

const num = 332;
const monotoneIncreasingDigits = (num) => {
   const checkMonotone = (x) =>{
      if (x <= 9) {
         return true
      }
      let currentDigit = x % 10
      while (x) {
         const next = Math.floor(x / 10)
         const nextDigit = next % 10
         if (currentDigit >= nextDigit) {
            currentDigit = nextDigit
            x = next
         } else {
            return false
         }
      }
      return true
   }
   if (checkMonotone(num)) {
      return num
   }

   const digits = num.toString().split('').map(x => Number(x))
   return digits.reduce((acc, num, index) => {
      if (num >= 1) {
         const current = parseInt(digits.slice(0, index).join('') + num - 1 + new Array(digits.length - index - 1).fill('9').join(''), 10)
         if (checkMonotone(current)) {
            return Math.max(
            acc,current)
         }
      }
      return acc
   }, 0)
}
console.log(monotoneIncreasingDigits(num));

出力

299

  1. JavaScriptで数値の数字を区切る

    ユーザーに入力を提供するJavaScriptプログラムを作成する必要があります。ユーザーが値を入力してボタンを押すと、関数は入力が有効な数値であるかどうかを確認する必要があります。有効な数値である場合、プログラムは数値のすべての桁を個別に画面に出力する必要があります。 例-入力が-の場合 43354 その場合、画面の出力は-になります。 43354 この関数のコードを書いてみましょう- このためのコードは-になります HTML <!DOCTYPE html> <html>    <head>     &nb

  2. JavaScriptの数値の階乗で桁数を返す

    問題 最初で唯一の引数として数値numを受け取るJavaScript関数を作成する必要があります。 この関数は、数値numの階乗の桁数を計算して返す必要があります。 たとえば、関数への入力が-の場合 入力 const num = 7; 出力 const output = 4; 出力の説明 7の値だから! 4桁の5040です。 例 以下はコードです- const num = 7; const countDigits = (num = 1) => {    let res = 0;    while(num >= 2){ &