锁定老帖子 主题:一道算法题看程序员的魅力
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-04
不过就这个题来说,我看不出有什么魅力所在,而且楼主的解法太恶心了,那要是多于11000如何呢
|
|
返回顶楼 | |
发表时间:2011-07-05
有点像暴力破解密码`
|
|
返回顶楼 | |
发表时间:2011-07-05
LZ想说 数学强悍还是,程序强悍。
貌似,算法多是建立在数学之上的。 要是表达数学好,至少留个数学题。 要是表达程序强悍。貌似这程序就是一个穷举法。 |
|
返回顶楼 | |
发表时间:2011-07-05
wuliaolll 写道 不过就这个题来说,我看不出有什么魅力所在,而且楼主的解法太恶心了,那要是多于11000如何呢
我也没看出来魅力,不过希望有人能发个有魅力的解法,这个解法的确恶心,不过能解出来,那么这个就是能解决问题的,能解决问题的就是好方法。 不知道有魅力的什么样子,难道不循环了,那怎么做? |
|
返回顶楼 | |
发表时间:2011-07-05
不要玷污算法这个词。。。
|
|
返回顶楼 | |
发表时间:2011-07-05
DJ阿布 写道 不要玷污算法这个词。。。
不要说这么严重。穷举在没思路的情况也蛮不错的。最起码可以解决问题。 |
|
返回顶楼 | |
发表时间:2011-07-05
貌似楼上都是很单纯的人啊.
没看出楼主是在恶心java程序员? |
|
返回顶楼 | |
发表时间:2011-07-05
lyqiang 写道 zcb11051 写道 gbfd2012 写道 为什么列个2元方程组,没有解呢。。。。。。。。
3x+2=y; 11x=y; 谁能告诉我为什么。。。 这个没整数解,是1/4了~~~ 我也想知道这方程组怎么会错,x是所有桌子,y是所有人数。 3个人一张桌子,还剩两个人,就应该是3x+2=y; 11个人一张桌子刚好,就应该是11x=y; 哪里错了呢? 三个人坐一张桌子的桌子数量怎么会等于11个人坐一张桌子的桌子数量 |
|
返回顶楼 | |
发表时间:2011-07-05
这不是数论里的吗???
|
|
返回顶楼 | |
发表时间:2011-07-05
最后修改:2011-07-05
人数设为n
条件1, (n+1) % 3 = 0; 条件2, (n+1) % 5 = 0; 条件3, (n+1) % 7 = 0; 条件4, (n+1) % 9 = 0; 条件5, n%11 = 0; 条件1是多余的。 条件2、3、4,可得出, n+1 = 315m(m为自然数), 上述等式结合条件5,可得出 (315m-1) % 11 = 0。 public class Main{ public static void main(String[] args) { int m = gcf(gcf(gcf(3, 5),7),9); int n; for (int k = 1; ; k++) { if ((m*k-1)%11 == 0) { n = m * k - 1; break; } } System.out.println(n); } // 最大公约数 public static int gcd(int a, int b) { return b == 0 ? a : gcd(b, a%b); } // 最大公倍数 public static int gcf(int a, int b) { return a * b / gcd(a, b); } } 相比较起来,还是穷举法直接、易懂。 |
|
返回顶楼 | |