js如何判断一个数在某一个等差区间之内


一、js如何判断一个数是5,13,21,每个互相差8的等差数列

以下是一个简单的函数,用于判断一个数是否属于这个特定的等差数列:

function isInArithmeticSequence(num) {  
    // 数列的起始点  
    const start = 5;  
    // 数列的公差  
    const difference = 8;  
      
    // 计算从起始点到给定数的步数(差值除以公差),然后验证这个步数乘以公差加上起始点是否等于给定数  
    // 注意:Math.floor用于确保步数是整数,因为步数在物理上必须是整数  
    const steps = Math.floor((num - start) / difference);  
      
    // 如果步数乘以公差加上起始点等于给定数,则数在数列中  
    return (steps * difference + start) === num;  
}  
  
// 测试  
console.log(isInArithmeticSequence(5));  // true  
console.log(isInArithmeticSequence(13)); // true  
console.log(isInArithmeticSequence(21)); // true  
console.log(isInArithmeticSequence(29)); // true
console.log(isInArithmeticSequence(7));  // false

二、js如何判断一个数是1至5,9至13,17至21…等这个区间里面的,但是不包括两边的数字

以下是一个函数,用于实现这个逻辑:

function isInIntervalExcludingBounds(num) {  
    // 检查数是否为正整数  
    if (!Number.isInteger(num) || num <= 0) {  
        return false;  
    }  
  
    // 计算该数除以8的商,这将告诉我们它属于哪个“潜在”的区间(以8为间隔)  
    const quotient = Math.floor((num - 1) / 8); // 减1是为了让计算与区间起始对齐  
  
    // 计算当前区间的起始和结束数字(但不包括它们)  
    const start = quotient * 8 + 1;  
    const end = start + 4; // 每个区间的长度是5,但我们不包括两端的数字  
  
    // 检查num是否在区间的内部(即大于start且小于end)  
    return num > start && num < end;  
}  
  
// 测试  
console.log(isInIntervalExcludingBounds(1));  // false  
console.log(isInIntervalExcludingBounds(2));  // true  
console.log(isInIntervalExcludingBounds(5));  // false  
console.log(isInIntervalExcludingBounds(9));  // false  
console.log(isInIntervalExcludingBounds(10)); // true  
console.log(isInIntervalExcludingBounds(13)); // false  
console.log(isInIntervalExcludingBounds(17)); // false  
console.log(isInIntervalExcludingBounds(18)); // true  
console.log(isInIntervalExcludingBounds(21)); // false

三、总结

以上就是针对两种类型的等差数列,判断一个数字是否在这个区间之内,具体的实现还需要根据自己的项目需求进行修改。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值