java - C语言算法题-韩信点兵 求解?
高洛峰
高洛峰 2017-04-18 10:53:25
0
2
672


完全不知道怎么下手??

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
大家讲道理

这个。。。不知道怎么说才好。。。

设共有 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

三个的话,先算两个,再算第三个。

Peter_Zhu

雷雷

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!