巧用数字规律解算法(求1000以内所有含1的数字)

博主通过分析发现所有含1的数可以视为10的倍数加1,因此循环100次得到10的所有倍数并加1,但注意到还有十位或百分位为1的情况。通过观察数字规律,博主提出用公式求出十位和百分位为1的数,以此完善解题思路,并邀请读者分享更优方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//自己的思路解题,判断那一步不是很完美

//所有含1的数都可以看成是10的倍数+1,于是 1000 是 10的100倍,所以循环100次可以求出10的所有倍数,然后+1

//当然还有一些本身是10的整数倍的,自身也含有1的数,用了比较low的判断法

(function(){
    var a1=[];
    for(var i = 0; i < 100; i++){
        if((10*i).toString().indexOf('1') > -1){
            a1.push(10*i)
        }
        a1.push(1+10*i);
        
    }
    console.log(a1)

})()


大家有更好方法的请回复赐教


--------------------------------------------------------------------------------

上述思路,后来考虑还是有遗漏,再补一个全的

var a3 = new Set();

//第一步同上面思路一样先同求所有末位为1的数

for(let k = 0; k < 100; k++){
    a3.add(1+10*k);

}

//第二步,算出所有十位和百分位为1的数

//可以列出所有数字观察数字规律然后转换为公式

/* 

 10           11              12 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值