Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45165
  • 博文数量: 6
  • 博客积分: 202
  • 博客等级: 入伍新兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-15 16:52
文章分类

全部博文(6)

文章存档

2013年(1)

2011年(5)

我的朋友

分类: Python/Ruby

2011-06-25 23:34:48

新手第一次用Python写这种难度的算法,有些吃力,以后就好了:)
  1. import math

  2. def func(my_list, used_baskets, eggs, baskets, max_eggs_per_basket):
  3.     if eggs == 0:
  4.         for i in range(used_baskets-1):
  5.             print(my_list[i], ' ', sep='', end='')
  6.         print(my_list[used_baskets-1])
  7.     elif eggs == 1 or baskets == 1:
  8.         for elt in my_list[0:used_baskets]:
  9.             print(elt, ' ', sep='', end='')
  10.         print(eggs)
  11.     else:
  12.         for x in range(min(eggs, max_eggs_per_basket), math.ceil(eggs/baskets)-1, -1):
  13.             my_list[used_baskets] = x
  14.             func(my_list, used_baskets+1, eggs-x, baskets-1, x)

  15. def main():
  16.     m = int(input("input your eggs:"))
  17.     if m < 1 or m > 100:
  18.         quit()
  19.     n = int(input("input your baskets:"))
  20.     if n < 1 or n > 100:
  21.         quit()
  22.     input_list = [0]*n
  23.     func(input_list, 0, m, n, m)

  24. main()
阅读(3822) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~