中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
- for x in range(0, 20):
- for y in range(0, 33):
- if x*5 + y*3 + (100-x-y)/3 == 100:
- print(x, y, 100-x-y)
结果:
0 25 75
4 18 78
8 11 81
12 4 84
很少用Python,感觉不错,呵呵。
以后试着用Python做快速原型开发。
后记:
看了别人的文章,说本题目有O(n)解法,O(n^2)解法,O(n^3)解法,上面的显然是O(n^2)解法。
O(n^3)解法如下:
- for x in range(0, 20):
- for y in range(0, 33):
- for z in range(0, 100):
- if (x+y+z == 100) and (5*x+3*y+z/3 == 100):
- print(x, y, z)
O(n)解法如下:
- for x in range(0,20):
- if (300+3*x) % 4 == 0 and 100-x-(300+3*x)/4 >= 0 and (300+3*x)/4 >= 0:
- print(x, int(100-x-(300+3*x)/4), int((300+3*x)/4))
阅读(7774) | 评论(0) | 转发(0) |