Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1730152
  • 博文数量: 410
  • 博客积分: 9563
  • 博客等级: 中将
  • 技术积分: 4517
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-03 19:59
个人简介

文章分类

全部博文(410)

文章存档

2017年(6)

2016年(1)

2015年(3)

2014年(4)

2013年(32)

2012年(45)

2011年(179)

2010年(140)

分类: LINUX

2011-06-02 22:04:56

今天女儿的一道一年级数学题,问16元5角共有多少种付法?
解题思路:不考虑找钱的情况(10元、5元、2元、1元、5角、2角、1角、5分、2分、1分)共10种
16元5角=1650分,统一以分为单位
设置变量表:
a 10元 1000
b 5元  500
c 2元  200
d 1元  100
e 5角  50
f 2角  20
g 1角  10
h 5分  5
i 2分  2
j 1分  1
判断条件: a*1000+b*500+c*200+d*100+e*50+f*20+g*10+h*5+i*2+j=1650
python的源代码如下
计算结果:7796977944种支付方法

  1. #!/usr/bin/python
  2. times=0
  3. for a in range(0,2):
  4.     for b in range(0,((1650-a*1000)/500)+1) :
  5.         for c in range(0,( (1650-a*1000-b*500)/200)+1) :
  6.             for d in range(0,( (1650-a*1000-b*500-c*200)/100 )+1):
  7.                 for e in range(0,( (1650-a*1000-b*500-c*200-d*100)/50 )+1):
  8.                     for f in range(0,( (1650-a*1000-b*500-c*200-d*100-e*50)/20 )+1):
  9.                         for g in range(0,( (1650-a*1000-b*500-c*200-d*100-e*50-f*20)/10 )+1):
  10.                             for h in range(0,( (1650-a*1000-b*500-c*200-d*100-e*50-f*20-g*10)/5 )+1):
  11.                                 times+=(((1650-a*1000-b*500-c*200-d*100-e*50-f*20-g*10-h*5)/2)+1)
  12. print times
  13. print "1000*%d 500*%d 200*%d 100*%d 50*%d 20*%d 10*%d 5*%d" %(a,b,c,d,e,f,g,h)

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