• 啊哈,381654729!


    题目:由1到9九个数字组成的九位数,各位不重复。
    前n个数字组成的n位数可以被n整除,求这个九位数。

    解:

    所需要的一些数学知识:

    判断一数字能否被1、2、3、5整除。小学知识,无需多言。

    判断一数字能否被6整除:尾数是否为偶、各位和是否3的倍数。

    判断一数字能否被9整除:各位和是否9的倍数。(比如abc = a * 90 + b * 9 + a + b + c,问题就转化了a+b+c能否被9整除)

    判断一数字能否被4整除:看末位两数组成的两位数能否被4整除。(比如abcdef,因为它等于abcd*100+ef,所以只需判断ef能否被4整除)

    判断一数字能否被8整除:看末尾三数组成的三位数能否被8整除。(比如abcdef,等于abc * 1000 + def,所以只须判断def)

    现在开始求解题目:

    设该数字为abcdefghi。

    0)。从1到9相加之和为45,是9的倍数。所以无论9个数字怎么排列,都是9的倍数。

    1)。abcde要能被5整除,所以e只能为5.

    2)。b、d、f、h都必须是偶数,a、c、g、i 必须是奇数

    3)。abc能被3整除,故a+b+c是3的倍数;abcdef被6整除,故a+b+c+d+e+f也是3的倍数。
    于是d+e+f也是3的倍数。因为e=5,且d、f是2、4、6、8中的两个偶数。所以:d、f要么为2、8,要么为4、6.

    4)。abcd能被4整除,故cd须被4整除,而c只能取1、3、7、9中某数,如果d取4或8,cd无法被4整除,所以d只能取2或6!

    5)。我们先假设,d为2,

    于是f=8,h只能取4或6,因为abcdefgh要被8整除,所以fgh需要被8整除,也就是gh要被8整除。

    而g是1、3、7、9中的一个,所以h不能为4,gh无法被8整除。于是h=6,b=4,而g只能取1或者9。

    如果g取了1,那么abc中的a、c只能取3、7、9中的两数,无论怎么取,都无法让a、b、c之和为3的倍数,所以g不能取1,只能取9!而a、c分取1、7,i=3。

    于是现在得到两个数:147258963、741258963.

    这两个数字都满足了:当n不等于7时,前n位数字组成的n位数都被n整除。

    可惜,通过验证发现,它们都不满足n=7的情况! 于是得出结论:d不能为2!!!

    6)。由以上,知:d只能取6! 于是f = 4.

    h只能取2或者8. g取1、3、7、9中某数。 因为要使fgh被8整除,现在f为4。于是:h不能为8!

    因为在前面这几个约束下,如果h取了8,那么fgh将无法被8整除!

    所以,h只能取2!(于是b=8.) g只能取3或者7.

    g可以取3吗?不行,因为abcdefg是要被7整除的,如果g=3,则f必须大于6,这样才能在最后可能拼出个63来以便被7整除,而f现在是4,比6小,所以g不能为3! 于是g只能为7!

    现在a、c只能取1、3、9中两数,为使abc被3整除,故a、c只能取1、3或者1、9。

    于是得到四个数字:183654729、381654729、189654723、981654723.

    这四个数字都满足了:当n不等于7时,前n位数字组成的n位数都被n整除。

    通过验证发现:只有381654729满足了n=7的情况!!!

    于是:最后的结果:这个九位数就是:381654729!

    //2009年12月5日夜,躺床上推导数小时,终有所获。

  • 相关阅读:
    【Linux】ZeroMQ 在 centos下的安装
    ZeroMQ下载、编译和使用
    在Linux系统上安装Git
    Linux下python2.7安装pip
    [Tyvj1474]打鼹鼠
    [BZOJ2908]又是nand
    [SPOJ375]Qtree
    浅谈算法——树链剖分
    [BZOJ5368/Pkusc2018]真实排名
    [FJOI2007]轮状病毒
  • 原文地址:https://www.cnblogs.com/chaohi/p/10698000.html
Copyright © 2020-2023  润新知