一道算法题看软件工程师的魅力

一道算法题看程序员的魅力
有一问题:说一个屋里有多个桌子,有多个人?
如果3个人一桌,多2个人。
如果5个人一桌,多4个人。
如果7个人一桌,多6个人。
如果9个人一桌,多8个人。
如果11个人一桌,正好。请问这屋里多少人?

java程序员的解法:

public class Sum11

public static void main(String [] args){
        int sum=11;
for (int i=1; i<1000 ; i++)//当人数在11000内时
{    
sum=11*i;
if (sum%3 ==2 && sum%5==4 && sum%7==6 && sum%9==8 )

System.out.println("sum=" + sum);//屋里有的人数
System.out.println("desk=" + sum/11);//屋里有多个桌子
System.out.println();
}

}
     
}

}
当人数在11000内时,设sum为人数,desk为桌子
结果有三种:
sum=2519, desk=229; 
sum=5984 ,desk= 544;
sum=9449, desk=859.

这是程序的魅力所在,程序员不可忘的基本功,这是我们程序员存在的真正价值。我们对技术充满激情,又不断地坚强学习,与时俱进发挥我们的能量,为了心中的理想而奋斗不止,无悔于心。
1 楼 zhanghh321 2011-06-30  
楼主想表达什么呢?
2 楼 C.J. 2011-06-30  
等价于(315*n-1)%11 == 0
因为315%11 = 7,  (7*8-1)%11 == 0
所以第一个解n=8 且 n+=11