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

假设你有无限数量的邮票,面值分别为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

python笔记1-用python解决小学生数学题的更多相关文章

  1. Python笔记·第一章—— Python基础(一)

    一.Python的简介 1.Python的由来与版本 1.1 python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文 ...

  2. python笔记:#001#python简介

    认识 Python 人生苦短,我用 Python -- Life is short, you need Python 目标 Python 的起源 为什么要用 Python? Python 的特点 Py ...

  3. python笔记-用python解决小学生数学题【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前几天有人在群里给小编出了个数学题: 假设你有无限数量的邮票,面值分别为 ...

  4. python 笔记2:python语法基础

    python语法学习笔记: 1 输入输出 input(),print(). name = input('input your name : ')print('hello ,'+name)print(& ...

  5. python笔记1:python函数的使用

    一.函数:len() 1:作用:返回字符串.列表.字典.元组等长度 2:语法:len(str) 3:参数: str:要计算的字符串.列表.字典.元组等 4:返回值:字符串.列表.字典.元组等元素的长度 ...

  6. [Python笔记][第二章Python序列-复杂的数据结构]

    2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...

  7. [Python笔记][第二章Python序列-tuple,dict,set]

    2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...

  8. [python笔记][第二章Python序列-list]

    2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...

  9. [Python笔记][第一章Python基础]

    2016/1/27学习内容 第一章 Python基础 Python内置函数 见Python内置函数.md del命令 显式删除操作,列表中也可以使用. 基本输入输出 input() 读入进来永远是字符 ...

随机推荐

  1. hdu 4813(2013长春现场赛A题)

    把一个字符串分成N个字符串 每个字符串长度为m Sample Input12 5 // n mklmbbileay Sample Outputklmbbileay # include <iost ...

  2. Java第三阶段学习(二、IO流--------递归,字节流Stream)

    一.递归 定义:指方法在方法内调用自己 适用于方法的运算主体不变,但运行的时候,参与运算的方法参数会变化注意:一定要给递归一个出口,否则内存溢出 练习题1:使用递归打印文件夹中所有的文件,包含子目录中 ...

  3. linux 101 hacks 3null 改文件大小写 xargs

    禁止标准输出和错误信息的输出 当我们调试 shell 脚本的时候,我们往往不希望看到标准输出和标准错误的信息.我们可以使用/dev/nulll 来禁止标准错误的信息. 将标准输出重定向到/dev/nu ...

  4. jenkins中管理用户

    jenkins中管理用户: 管理用户权限

  5. Ionic实战一:Ionic仿照微信项目

    github下载地址:https://github.com/Frogmarch/ionic-wechat 博客学习地址:http://www.cnblogs.com/Frogmarch/ Ionic仿 ...

  6. source Insight 软件使用注意点

    1. 需要将 tab键转为 4个空格 首先通过路径(Options->Document Options)进入以下界面: step 1:将 Visible tabs 打勾. step 2 :将 E ...

  7. [CodeForces]CodeForces 13D 几何 思维

    大致题意: 给出N个红点和M个蓝点,问可以有多少个红点构成的三角形,其内部不含有蓝点 假设我们现在枚举了一条线段(p[i],p[j]),我们可以记录线段下方满足(min(p[i].x,p[j].x)& ...

  8. Android 最基础生命周期及旋转屏幕问题

    public class MainActivity extends Activity { private static final String TAG ="MainActivity&quo ...

  9. Python使用正则

    Python中使用正则的两种方式 在Python中有两只能够使用正则表达式的方式: 直接使用re模块中的函数 import re re_string = "{{(.*?)}}" s ...

  10. iOS Sprite Kit教程之编写程序以及Xcode的介绍

    iOS Sprite Kit教程之编写程序以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由很多的文件组成,例如代码文件.资源文件等.Xcode会帮助开发者对这些文件进行管理.所以,Xco ...