吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1886|回复: 8
收起左侧

[Python 转载] 【新手】小白用python解小学奥数第六集

[复制链接]
zhang1497 发表于 2020-8-29 20:23
前言
因为工作的关系,长期教小学数学奥数,最近接触到python,学到了while;for 语句这里,于是就有了这个想法:用python解奥数题
1. 订立制作目标
  • 目标:
    • 打印题目
    • 输入逻辑
    • 输出答案


2.制作所需函数
打印题目 → print函数
满足的条件 → for循环语句
方法→ .append()
答案 → max[]

3. 开始制作
第一步:打印题目

[Python] 纯文本查看 复制代码
print("\n一个数除200余4,除300余6,除500余10.求这个数最大是多少?\n")


第二步:制作判断条件

[Python] 纯文本查看 复制代码
sum = []   # 这个数可能会有多个,建立空列表一会儿取最大值。
for i in range(1,200):    # 这个除数应该在1~200之间。
    if 4 == 200 % i  and 6 == 300 % i  and 10 == 500 % i :  #除以和除意义不同,千万别混了。
        sum.append(i)        # 把符合题意的值存入sum列表中。



第三步:输出答案

[Python] 纯文本查看 复制代码
print("\n一个数除200余4,除300余6,除500余10.求这个数最大是多少?\n")

sum = []   # 这个数可能会有多个,建立空列表一会儿取最大值。
for i in range(1,200):    # 这个除数应该在1~200之间。
    if 4 == 200 % i  and 6 == 300 % i  and 10 == 500 % i :  #除以和除意义不同,千万别混了。
        sum.append(i)        # 把符合题意的值存入sum列表中。
print("这个数最大是:",max(sum))



4. 运行代码截图:

搜狗截图20200829201900.png


5.总结:
今天比较顺利,唯一错误的地方在一开始没看清楚除和除以。除后面是被除数,除以后面是除数。




其他问题请各位大佬指导。
历史题目:
【新手】小白用python解小学奥数第一集
【新手】小白用python解小学奥数第二集
【新手】小白用python解小学奥数第三集
【新手】小白用python解小学奥数第四集
【新手】小白用python解小学奥数第五集

免费评分

参与人数 1吾爱币 +4 热心值 +1 收起 理由
风绕柳絮轻敲雪 + 4 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

挑灯看花 发表于 2020-8-29 20:36
穷举,和奥数的思想不符啊,不过也是最简单的方法了,感谢分享
 楼主| zhang1497 发表于 2020-8-29 20:56
挑灯看花 发表于 2020-8-29 20:36
穷举,和奥数的思想不符啊,不过也是最简单的方法了,感谢分享

是的,因为人的运算力有限,所以编程思路,有时候和正常逻辑不同。
这题如果用正常逻辑解,是求(200-4),(300-6),(500-10)这三个数的最大公约数。
用短除法└────,解得98.
ggy1234 发表于 2020-8-29 21:49
看了好几遍题目才区分除和除以我这数学学得可以啊
ciker_li 发表于 2020-8-29 22:06
挺有意思,楼主继续
Loker 发表于 2020-8-29 22:39
本帖最后由 Loker 于 2020-8-30 11:55 编辑

你的最近几道题感觉都差不多啊。
还有就是,都是求最大值,确实用 max 可以求出数组中的最大的数 ,但是就最近的几道题来说,最大值一直是最后一个数 ,因为 i 一直自增,只要找到满足的 结果就一定比 上一个结果要大。
所以直接输出最后一个值就可以了吧?
[Python] 纯文本查看 复制代码
print("\n一个数除200余4,除300余6,除500余10.求这个数最大是多少?\n")

res = 0

for i in range(1,200):    # 这个除数应该在1~200之间。
    if 4 == 200 % i  and 6 == 300 % i  and 10 == 500 % i :  #除以和除意义不同,千万别混了。
        res = i        # 把符合题意的值存入sum列表中。

print("这个数最大是:", res)
 楼主| zhang1497 发表于 2020-8-30 12:48
Loker 发表于 2020-8-29 22:39
你的最近几道题感觉都差不多啊。
还有就是,都是求最大值,确实用 max 可以求出数组中的最大的数 ,但是就 ...

是的,可能我一直想用max,造成多余了。执拗。哈哈
jydcb003 发表于 2020-8-30 17:52
可惜实际上考的时候只能人工手算。
 楼主| zhang1497 发表于 2020-8-30 18:28
jydcb003 发表于 2020-8-30 17:52
可惜实际上考的时候只能人工手算。

所以我们这里只是探讨打代码。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 03:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表