由IBM的面试题目“一个人花8块钱买了一只鸡”看软件设计 - xuefly - 博客园

来源:百度文库 编辑:神马文学网 时间:2024/04/28 23:58:01

由IBM的面试题目“一个人花8块钱买了一只鸡”看软件设计

2008-07-25 11:01 by Xuefly, 708 visits, 网摘, 编辑

IBM面试时的题目:一个人花8块钱买了一只鸡
一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了, 11块钱卖给另外一个人,问他赚了多少钱?


问题:通过这类题目能考出什么呢!为什么考这种题目?

答案:考的是软件设计的思想。设计的王道——解耦合

 

对于此题目有两个变量:

1,鸡的进价是变量

2,买的次数是变量(对于此题只买了两次但是考虑问题时应该假定不知道他要买多少此)

 

找到变化点后问题就容易解决了

解:把买进的同一只鸡拷贝成两个分别买进。

他分别进了两只鸡
一只8块买的卖了9块赚1块
另一只10块买的卖了11块赚1块
1块+1块=2块

 

所以一共赚两块。

 

练习题:

一天有个年轻人来到王老板的店里买了一件礼物,这件礼物成本是18元,标价是21元。结果是这个年轻人掏出100元要买这件礼物。王老板当时没有零钱,用那100元向街坊换了100元的零钱,找给年轻人79元。但是街坊后来发现那100元是假钞,王老板无奈还了街坊100元。现在问题是:王老板在这次交易中到底损失了多少钱

参考答案:

这里老板换回来的100元与他找给混蛋顾客的79元耦合在了一起,造成了思考的不自然。

方案:

老板拿出200元真钱

100元用来与邻居交换(他俩没事交换等价真钱玩)——没有损失

100元白给了混蛋顾客79元——损失79元

另外白给了混蛋顾客1件衣服

所以:总损失=79元+1件衣服