【无聊】用程序写一道初中数学题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;i0) {
            t *= 10
        } else {
            t = 1
        }
        count = 0
        for(var j=0;j0) {
                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;i0) {
            t *= 10
        } else {
            t = 1
        }
        total += count * t
    }
    return total
}

你可能感兴趣的:(【无聊】用程序写一道初中数学题888888×333333)