论坛首页 综合技术论坛

一道算法题看程序员的魅力

浏览 27535 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2011-07-04  
不过就这个题来说,我看不出有什么魅力所在,而且楼主的解法太恶心了,那要是多于11000如何呢
0 请登录后投票
   发表时间:2011-07-05  
有点像暴力破解密码`
0 请登录后投票
   发表时间:2011-07-05  
LZ想说 数学强悍还是,程序强悍。
貌似,算法多是建立在数学之上的。
要是表达数学好,至少留个数学题。
要是表达程序强悍。貌似这程序就是一个穷举法。
0 请登录后投票
   发表时间:2011-07-05  
wuliaolll 写道
不过就这个题来说,我看不出有什么魅力所在,而且楼主的解法太恶心了,那要是多于11000如何呢

我也没看出来魅力,不过希望有人能发个有魅力的解法,这个解法的确恶心,不过能解出来,那么这个就是能解决问题的,能解决问题的就是好方法。

不知道有魅力的什么样子,难道不循环了,那怎么做?
0 请登录后投票
   发表时间:2011-07-05  
不要玷污算法这个词。。。
0 请登录后投票
   发表时间:2011-07-05  
DJ阿布 写道
不要玷污算法这个词。。。

不要说这么严重。穷举在没思路的情况也蛮不错的。最起码可以解决问题。
0 请登录后投票
   发表时间:2011-07-05  
貌似楼上都是很单纯的人啊.
没看出楼主是在恶心java程序员?
0 请登录后投票
   发表时间:2011-07-05  
lyqiang 写道
zcb11051 写道
gbfd2012 写道
为什么列个2元方程组,没有解呢。。。。。。。。
3x+2=y;
11x=y;
谁能告诉我为什么。。。


这个没整数解,是1/4了~~~


我也想知道这方程组怎么会错,x是所有桌子,y是所有人数。
3个人一张桌子,还剩两个人,就应该是3x+2=y;
11个人一张桌子刚好,就应该是11x=y;
哪里错了呢?




三个人坐一张桌子的桌子数量怎么会等于11个人坐一张桌子的桌子数量
0 请登录后投票
   发表时间:2011-07-05  
这不是数论里的吗???
0 请登录后投票
   发表时间: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);
	}
}


相比较起来,还是穷举法直接、易懂。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics