在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