在JavaScript中查找最接近的Gapful数

当-时,数字为空数-

  • 它至少包含三位数,并且

  • 可以通过将第一位和最后一位放在一起形成的数字来整除

例如-

数字1053是一个空位数字,因为它有4位数字,并且可以被13整除。同样,数字135是一个空位数字,因为它具有3位数字,并且可以将其精确地整除15。

我们的工作是编写一个程序,该程序将最接近的空位数字返回到我们提供的输入数字。

例如,对于所有2位数字,它将是100。对于103,它将是105。

我们将把问题分解为两个功能-

isGapful()函数

它接收一个数字字符串,并返回一个布尔值,如以下代码所示:

const isGapful = (numStr) => {

   const int = parseInt(numStr);

   return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0;

};

最近的Gapful()函数

这是我们接收数字的主要功能,返回最接近的空位数字。这是代码-

const nearestGapful = (num) => {

   if(typeof num !== 'number'){

      return -1;

   }

   if(num <= 100){

      return 100;

   }

   let prev = num - 1, next = num + 1;

   while(!isGapful(String(prev)) && !isGapful(String(next))){

      prev--;

      next++;

   };

   return isGapful(String(prev)) ? prev : next;

};

isGapful()函数返回,基于数是否gapful与否在固定时间一个布尔值,该nearestGapful()方法循环,直到它找到一个数字,是gapful并将其返回。

以下是完整的代码-

示例

const n = 134;

//接收一个数字字符串并返回一个布尔值

const isGapful = (numStr) => {

   const int = parseInt(numStr);

   return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0;

};

//主要功能-接收数字,返回数字

const nearestGapful = (num) => {

   if(typeof num !== 'number'){

      return -1;

   }

   if(num <= 100){

      return 100;

   }

   let prev = num - 1, next = num + 1;

   while(!isGapful(String(prev)) && !isGapful(String(next))){

      prev--;

      next++;

   };

   return isGapful(String(prev)) ? prev : next;

};

console.log(nearestGapful(n));

输出结果

控制台中的输出将为-

135

以上是 在JavaScript中查找最接近的Gapful数 的全部内容, 来源链接: utcz.com/z/322112.html

回到顶部