题目:一个六位数,分别用2,3,4,5,6乘它,得到的五个新数仍是由原数中的六个数字组成,只是位置不同,则此六位数是多少?

function evaluate() {
    var multiplier = [2,3,4,5,6],
        sortNumber = function (number) {
            return parseInt((number + '').split('').sort().join(''), 10);
        },
        gameOver = false, // 判断是否已经找到,如果找到,结束循环
        determine = function(origin) {
            var result, i, len = multiplier.length;
            for( i = 0; i < len; i++ ) {
                result = origin * multiplier[i];
                if (result < 100000 || result > 999999 || sortNumber(result) !== sortNumber(origin)) {
                    return;
                }
                if(i === (len-1)){
                    gameOver = true;
                    alert('此六位数是 ' + origin);
                }
            }
        };

    // Math.floor(1000000/6) 缩小范围
    for(var j = Math.floor(1000000/6); j >= 100000  && !gameOver; j--) {
        determine(j);
    }
}

扩展阅读:



共有21 条评论

  1. 1. 头像 longbill

    第一次知道还可以Split(“”)。。受教了

  2. 2. 头像 行骏

    跑了下这个程序,结果是not find

  3. 3. 头像 天然卷

    程序循环等于凑数,既然是奥数题,简单算法是什么

  4. 4. 头像 怿飞

    @行骏 原来代码有个笔误,已经修正了。

  5. 5. 头像 luosheng

    @天然卷 奥数的解法是求出1/7的前六位……

  6. 6. 头像 Benben

    Math.floor(1000000/6) 缩小范围
    预估?

  7. 7. 头像 怿飞

    @天然卷 其实用另外的算法也可以算出的,不过比循环复杂多了,可以先确定出十万位的数(1),然后算出个位上的数(7),很自然其他位的数都可以预知了,然后每一位计算一次,计算后的数,不在可知的数中的去处,很自然最后的结果也就出来了,我笔算了下,大概15-20分钟可以解答出来。

  8. 8. 头像 清风无影

    111111这个算不算?

  9. 9. 头像 绿色软件

    貌似不能正常运行、。

  10. 10. 头像 jackal

    Math.floor(1000000/6)
    166666之后的数乘以6之后都不再是6位了哈.
    这里当然要确定下.

    算法可以再优化点.
    就是一个有意思的3, 6位数必定可以被3整除
    for(var j = 99999; j <= Math.floor(1000000/6) && !gameOver; j=j+3)

  11. 11. 头像 soho一族

    学习了,不是很懂

  12. 12. 头像 CSS

    认识 JS独特优点

  13. 13. 头像 ikeeptrying

    有才的人呢~

  14. 14. 头像 葉子

    额 高深的···看不懂,看来要跟你学习下

  15. 15. 头像 银子

    99999/7 就是答案

  16. 16. 头像 团美

    关注你了

    团美网受益匪浅,继续更新哦!通过订阅功能不错,很好了

    最近老是思考自己的网站怎么改版,可以帮我看看吗?

  17. 17. 头像 iifksp

    偶尔做做题真的很有意思~尝试用C捣鼓了个,代码量翻了一倍还多..

  18. 18. 葵中剑's Blog – The Sword in Sunflowers » JavaScript和C的数学解题

    [...] 这段时间,怿飞的博客上有一篇用 JavaScript 解数学题,代码很简练优雅。于是突然想用C写写看,因为很久没写,就权当是练习也挺不错啊:) [...]

  19. 19. 头像 HTC论坛

    ie6下报错?

  20. 20. 头像 cc

    作为奥数题该怎么解呢

  21. 21. 头像 cc

    luosheng 2010年5月27日 上午 9:33 ₪
    @天然卷 奥数的解法是求出1/7的前六位……

    这是什么原理

发表评论

(必填)

(必填,会为您保密)

评论仅支持“a、abbr、strong、em、blockquote、code”几个简单的标签