博客
关于我
python笔记1-用python解决小学生数学题
阅读量:464 次
发布时间:2019-03-06

本文共 900 字,大约阅读时间需要 3 分钟。

前几天有人在群里给小编出了个数学题:

假设你有无限数量的邮票,面值分别为6角,7角,8角,请问你最大的不可支付邮资是多少元?

 

小编掰着手指头和脚趾头算了下,答案是:1.7元

那么问题来了?为啥是1.7呢,于是小编用python解决了这个小学数学题。

 

一、排列组合

假设6、7、8角各有50张(50张够了),先计算出所有的可能组合

 

 

二、排序、去重

  1. 先对组合就行排序,从小到大的顺序,排队站好,这里用到sort()函数(要是你用冒泡排序,那你就out啦!)

  2. sort函数只是对list序列排序,并没有返回值

  3. 排序完成后,接下来就是去掉重复的数据

 

 

三、取出不能生成的数字

  1. 不在上面组合里面的数字就是不能生成的数字了,于是我们可以先取出来。

  2. 取出来后的数据放到r队列里。

  3. 从r队列取最后一个数据,就是答案啦。

 

 

四、参考代码

# coding:utf-8

a = 6
b = 7
c = 8
t = 50     # 票的张数
s = []     # 排列组合全部放到这里
# 生成的组合
for i in range(t+1):
    s1 = a*i
    s.append(s1)
    for j in range(t+1):
        s2 = a*i+b*j
        s.append(s2)
        for k in range(t+1):
            s3 = a*i + b*j + c*k
            s.append(s3)
# 排序
s.sort()
# 去掉重复
news = []
for i in s:
    if i not in news:
        news.append(i)
print("组合生成的最大数%s"%news[-1])
# 提取不在列表列表中的数字
r = []
for i in range(6*t):
    if i in news:
        pass
    else:
        r.append(i)
print("组合不能生成的数字%s"%r)
print("不能生成的最大数字为%s"%r[-1])​

 

如果当年小学时候就能学会python,妈妈就不用担心我的学习了!

在学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:232607095

转载地址:http://jkmbz.baihongyu.com/

你可能感兴趣的文章
【树形dp】P1273 有线电视网
查看>>
【最短路】P4408 [NOI2003]逃学的小孩
查看>>
2020电工(初级)考试及电工(初级)考试软件
查看>>
2020N1叉车司机模拟考试题库及N1叉车司机复审模拟考试
查看>>
2020年制冷与空调设备运行操作答案解析及制冷与空调设备运行操作考试总结
查看>>
2020年保育员(初级)考试资料及保育员(初级)新版试题
查看>>
2020年茶艺师(高级)考试内容及茶艺师(高级)考试申请表
查看>>
2021年重氮化工艺考试题库及重氮化工艺考试报名
查看>>
2021年车工(高级)考试总结及车工(高级)试题及答案
查看>>
2021年压力焊证考试及压力焊实操考试视频
查看>>
2021年低压电工考试及低压电工考试申请表
查看>>
2021年低压电工考试及低压电工考试申请表
查看>>
2021年A特种设备相关管理(电梯)考试APP及A特种设备相关管理(电梯)复审考试
查看>>
2021年N1叉车司机考试题及N1叉车司机复审模拟考试
查看>>
2021年T电梯修理考试技巧及T电梯修理模拟考试软件
查看>>
CodeBlocks开发wxWidgets环境配置详细
查看>>
天涯人脉通讯录 - 设计草图
查看>>
wxWidgets 最新版2.8.11,终于放出来了
查看>>
python学习09:暂停一秒后再输出
查看>>
6、ShardingSphere 之 读写分离
查看>>