• 少儿编程--枚举算法


    1、输入一个100以内的数,找出100以内(包括100)比它大的数

    思路:
    ①列举1~100的数;
    ②将列举的数依次和输入的数比较;
    ③输出符合条件的数。

    • 方法一
    num = int(input('输入一个100以内的数:'))
    for i in range(1, 101, 1):
        if i > num:
            print(i, end=' ')
    
    • 1
    • 2
    • 3
    • 4
    • 方法二
    i = 1
    while i <= 100:
        if i > num:
            print(i, end=' ')
        i += 1
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:
    在这里插入图片描述

    2、输入一个数,将这个数的所有因数输出

    思路:
    ①列举1~n的数;
    ②将列举的数依次和输入的数比较;
    ③输出能够n其整除的数。

    inp = int(input('请输入一个数:'))
    for i in range(1, inp + 1, 1):
        if inp % i == 0:
            print(i, end=' ')
    
    • 1
    • 2
    • 3
    • 4

    输出:
    在这里插入图片描述

    3、设计一个算法找出1000以内 所有的“完全数”。

    分析:如果一个自然数恰好等于它的因子之和,这个数就称 为“完全数”。例如,6就是一个“完全数”,因为6的因 子为1、2、3,而6=1+2+3。

    思路:
    (1)列举出1~1000以内的数
    (2)列举出每个数的所有因数
    (3)找出所有因数相加等于原数的所有原数,即是1000以内的所有的完全数

    for i in range(1, 1001, 1):
        n = 0
        for j in range(1, i, 1):
            if i % j == 0:
                n += j
        if n == i:
            print(n, end=' ')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出:
    在这里插入图片描述

    4、有个人的支付宝支付密码忘记了,他急需在30分钟内完 成货款的支付,请用python编程帮他找回密码。他零星记得自己的支付密码信息:
    ①密码是6位数字,前面两位为85;
    ②最后两位数字相同;
    ③能被13和33整除。

    for i in range(850000, 859999, 1):
        a = i % 10    # 最后一位
        b = i // 10 % 10     # 倒数第二位,//表示整除
        if a == b:
            if i % 13 == 0 and i % 33 == 0:
                print(i, end=' ')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    输出:
    在这里插入图片描述

    5、小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
    有一次,老师出的题目是:36 x 495 = ?
    他却给抄成了:396 x 45 = ?
    但结果却很戏剧性,他的答案竟然是对的!!
    因为 36 * 495 = 396 * 45 = 17820
    类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54
    假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)
    能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?

    n = 0
    for i in range(12345, 98766, 1):
        # i=abcde
        a = i // 10000
        b = i // 1000 % 10
        c = i // 100 % 10
        d = i // 10 % 10
        e = i % 10
        if a == 0 or b == 0 or c == 0 or d == 0 or e == 0 or a == b or a == c or a == d or a == e or b == c or b == d or b == e or c == d or c == e or d == e:
            continue
        if (a * 10 + b) * (c * 100 + d * 10 + e) == (a * 100 + d * 10 + b) * (c * 10 + e):
            n += 1
            print((a * 10 + b) ,"*", (c * 100 + d * 10 + e), "=", (a * 100 + d * 10 + b) ,"*", (c * 10 + e))
    print(n)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    输出:
    在这里插入图片描述
    在这里插入图片描述

    6、有一盒乒乓球,9个9个数最后余下7个,5个5个数最后余下2个,4个4个数最后余下1个,问这盒乒乓球至少有多少个?

    x = 0
    while True:
        if x % 9 == 7 and x % 5 == 2 and x % 4 == 1:
            break
        x += 1
    print(x)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    输出:
    在这里插入图片描述

    7、输出1~n中每个数的因子有哪些,从小到大输出!
    比如:n=10,那么输出结果如下。
    请输入一个数字:10
    1:1
    2:1 2
    3:1 3
    4:1 2 4
    5:1 5
    6:1 2 3 6
    7:1 7
    8:1 2 4 8
    9:1 3 9
    10:1 2 5 10

    n = input('请输入一个数字:')
    n = int(n)
    for i in range(1, n + 1, 1):
        s = str(i) + ":"
        for j in range(1, i + 1, 1):
            if i % j == 0:
                s += str(j) + " "
        print(s)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    输出:
    在这里插入图片描述

    8、我家的门牌号 我家住在一条硬胡百里这条胡同的门牌号从1开始,顺序编号。
    若所有的门牌号之和减去我家门牌号的两倍正好等于 100 ,
    求我家的门牌号及总共有多少家。

    分析:1+2+…+m-1+m+m+1+…+x - m * 2 = 100

    j = 0
    count = 0
    for m in range(1, 10000, 1):
        sums = 0
        for i in range(1, m + 1, 1):
            sums += i
        count = m
        j = m
        while sums - m * 2 < 100:
            count += 1
            sums += count
        if sums - m * 2 == 100:
            break
    print(j)
    print(count)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    输出:
    在这里插入图片描述

  • 相关阅读:
    认识NIO
    JUC并发编程第一篇,复习线程基础知识
    深圳NPDP认证|如何做好一个B端产品经理?
    C# List
    docker 和 docker-compose的区别
    Python中的eval() & exec()
    mac免费杀毒软件哪个好用?如何清理mac系统需要垃圾
    12个C语言必背实例
    【UDS基础】简单介绍“统一诊断服务“
    vue直接添加属性是否响应式
  • 原文地址:https://blog.csdn.net/weixin_43792401/article/details/127820606