首頁  >  問答  >  主體

java - C语言算法题-韩信点兵 求解?


完全不知道怎么下手??

高洛峰高洛峰2743 天前679

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-04-18 10:55:25

    這個。 。 。不知道怎麼說才好。 。 。

    設共有 n 個人,三人一排,五人一排,七人一排,看最後一排剩下 a, b, c 人
    不就是

    n % 3 = a
    n % 5 = b
    n % 7 = c

    下面不就很簡單了麼?
    方法 1: 暴力
    n 從 10 到 100 都試試看。這個不用我說了

    方法 2: 數學方法(解同餘式-初等數經)

    例題:
    n % 3 = 2
    n % 5 = 4

    可以轉化成什麼呢?

    设 n / 3 = x 余 2, n / 5 = y 余 4
    ==> 3x + 2 = 5y + 4
    ==> 3x = 5y + 2
    x,y 在 自然数的最小解是 x = 4, y = 2
    ==> n 最小是 12
    3 和 5 的最小公倍数 = 15
    所以 n % 15 == 12

    三個的話,先算兩個,再算第三個。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:55:25

    雷雷

    回覆
    0
  • 取消回覆