美文网首页
记录一个有意思的计算案例

记录一个有意思的计算案例

作者: Piemon_Jay | 来源:发表于2021-06-07 09:36 被阅读0次

    需求是这样的


    image.png

    先说规律:
    规律一:第一行一列,第二个两列,第三行三列,第n行n列

    规律二:每行第n列和下一行第n列成等差数列,差5,差11,差17

    规律三:规律二的差值也成等差数列,差6

    规律四:最后一列与上一行最后一列成等差数列,差7

    规律查找结束,开始思考逻辑。
    想要知道在第几行第几列,先要知道往下排列的数字是什么。于是第一步,把它向下补全。
    把整个数据看成一个二维数组,行为索引,列为子数组的索引:

            var arr = [[6]];   //设置初始值
            for (var i=1;i<1000;i++) {   //假设行数是1000
                arr.push([]);    //添加一个数组项,意为新的一行
                for (var j=0;j<i;j++) {  //因为规律一,所以 j<i
                    arr[i].push(arr[i-1][j]+5+6*[j])   //进行差值计算,计算除最后一列外的值,添加进数组
                }
                arr[i].push(arr[i-1][arr[i-1].length-1]+7) //计算最后一列的值,添加进数组
            }
            console.log(arr);  //1000行补全完成
    

    给你们感受下:


    image.png

    下面要做的就是计算想要的数字在第几行第几列了

            for (var x=0;x<arr.length;x++) {   //循环arr不用多说吧
                for (var y=0;y<arr[x].length;y++) {   //循环数组项,得到每项具体数值
                    if (arr[x][y]==643) {   //判断是否为目标值
                        alert("第"+(x+1)+"行"+"第"+(y+1)+"项")   //输出
                    }
                }
            }
    

    到此,over。

    相关文章

      网友评论

          本文标题:记录一个有意思的计算案例

          本文链接:https://www.haomeiwen.com/subject/xhnzsltx.html