在 JavaScript 中發現缺位數


如果一個數至少有 3 位數,並且可以被由其第一個數字和最後一個數字組合成的數整除,則該數是缺位數。符合此描述的最小數是 100。第一個數字是 1,最後一個數字是 0,形成 10,而 10 是 100 的一個因子。因此,100 是一個缺位數。

我們需要建立一個函式,該函式接收一個數 n 並返回最接近的缺位數(包括它自身)。如果存在與 n 距離相等的兩個缺位數,則返回較小的那個。

一些示例 −

gapful(25) ➞ 100

gapful(100) ➞ 100

gapful(103) ➞ 105

示例

以下是程式碼 −

const num = 4780;
const isGapful = n => {
   if (n < 100){
      return false;
   }
   const temp = Array.from(n.toString());
   return n % (temp[0] + temp[temp.length - 1]) === 0;
}
function getClosestGapful(n) {
   let left = n, right = n;
   while (!isGapful(right)){
      right++;
   }
   if (n < 100){
      return right;
   }
   while (!isGapful(left)){
      left++;
   }
   return n - left <= right - n ? left : right;
};
console.log(getClosestGapful(25));
console.log(getClosestGapful(num));

輸出

這將在控制檯上生成以下輸出 −

100
4800

更新於: 2020 年 10 月 1 日

282 次瀏覽

開啟你的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.