【无聊】用程序写一道初中数学题888888×333333

无聊的开始

一道初中数学题888888×333333

其答案是:(888888000000-888888)÷3
推算

888888×333333
888888×999999÷3
888888 x (10000000 - 1)  ÷ 3

无聊ing

找规律

然而,我开始找规律之旅

8
3
24
88

33

          24
        24

        24
     24
888

333

              24
            24
          24

            24
          24
        24

          24
        24
      24
888

333

[

[24], [24], [24],

[24], [24], [24],

[24], [24], [24],

]

数学归纳法

6位就是六行六列

用程序实现下

实现相同数字,相同位数的乘法。比如:33 * 88 ,22 *99

js代码。chrome 控制台。可执行

// 888888 * 333333

// 8, 3, 6

function repeatNumMul(a, b, c) {
    count = 0
    total = 0
    ab = a*b
    for(var i=0;i<c;i++) {
        if (i>0) {
            t *= 10
        } else {
            t = 1
        }
        count = 0
        for(var j=0;j<c;j++) {
            if (j>0) {
                tt *= 10
            } else {
                tt = 1
            }
            count += ab*tt;
        }
        total += count * t
    }
    return total;
}

用递归

能看出来有规律的。问题包裹着子问题。

// 888888 * 333333

// 8, 3, 6

function repeatNumMul(a, b, c) {
    ab = a*b
    total = subValue(ab,c,2)
    return total;
}
function subValue(ab,c,num) {
    if (num==0) {
        return ab;
    }
    count = subValue(ab,c,num-1)
    total = 0
    for(var i=0;i<c;i++) {
        if (i>0) {
            t *= 10
        } else {
            t = 1
        }
        total += count * t
    }
    return total
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容