posts - 156,  comments - 601,  trackbacks - 0

又是一周的周未,不过最近项目一直进展不顺也少了一些悠闲。不过正好,文秘下来给大家发月刊,说是刊中有一题考大家,前几名回复有奖品。这可一下子让大家一直紧张的情绪,缓和了一些了。

下面是这个题目:

A、B、C三人的年龄一直是一个秘密。将A的年龄数字的位置对调一下,就是B的年龄;C的年龄两倍是A与B
两个年龄的差数;而B的年龄是C的10倍。请问:A、B、C三人的年龄各是多少?


拿到答案后大家就开始热闹起来了,纷纷开始动起来了。

到这里,我要说的程序员团队的特点的显现出来,大致分成的三派:

1. 用google/baidu, 直接找出答案(程序员一天的工作中,除了IDE,帮助文档外,用的最多的了)

2. 了解题目,写程序解答出答案。(程序员当然要用自己的武器来解决问题了)

3. 直接在纸上推算.


从上面我的观察发现,程序员团队真是一个不错的团队,不仅有各自己的做事的风格与解决问题的方式方法。而且他们都是很有勇气与信心去直面问题,解决问题。作为程序员,这也真让我们高兴的事。

下面是我的解题过程,写下来欢迎大家拍砖。

从 ;C的年龄段两倍是A与B 两个年龄的差数;而B的年龄是C的12倍
    先可以得出
         A = 12C
         B = 10C
         
从 A的年龄数字的位置对调一下,就是B的年龄,可以得出,C不应该是一个整数,因为 如果C是整数,则B未位一定是0,那A就小于10,不会出现这个问题,所以我就花了几分钟,写了这个程序。注:只是为了解答,没有考虑过优化,可能程序有待改进。
   
 
     public static void main(String[] args) {
        
double a, b;
        
for (double c = 0; c < 100; c += 0.5) {
           
            a 
= 12 * c;
            b 
= 10 * c;
           
            
if (a > 10 && b > 10) {
                
if (a % 10 == ((b -(b % 10)) / 10&&
                        (b 
% 10 == ((a -(a % 10)) / 10))) {
                    System.out.println(
"get result:");
                    System.out.println(
"a=" + a);
                    System.out.println(
"b=" + b);
                    System.out.println(
"c=" + c);
                }
            }
        }
    }
   
    直接就能算出结果。
   
附上 sunnycare 的解法,比较不错。

将A的年龄数字的位置对调一下,就是B的年龄;C的年龄两倍是A与B
两个年龄的差数;而B的年龄是C的10倍

将A的年龄数字的位置对调一下,就是B的年龄 =>A与B的年龄差是9的倍数。
C的两倍是这个差数=>C的年龄是4.5的倍数,=>B的年龄是45的倍数=>
B=45或90
=>C=4.5或9
=>A-B=9或18
   
   最后祝所有程序员周未愉快!
  
  
   Good Luck!
   Yours Matthew!
posted on 2008-12-12 22:58 x.matthew 阅读(3513) 评论(23)  编辑  收藏 所属分类: 其它

只有注册用户登录后才能发表评论。


网站导航: