栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2022-5-11Python循环习题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022-5-11Python循环习题

# 1. 计算11+22+33+44+55的结果
import math


def test01():
    result = 0
    for i in range(1, 6):
        result += i * 10 + i
    print(result)

# 2. 解决百钱百鸡的问题,用100块钱买100只鸡,已知公鸡3块/只,母鸡2块/只,小鸡1块2只。
#    用100块钱可以买公鸡,母鸡和小鸡分别多少只
# gj = 33
def test02():
    for gj in range(0, 33):
        for mj in range(0, 50):
            xj = 100 - mj - gj
            if gj * 3 + mj * 2 + xj * 0.5 == 100:
                print(f'公鸡:{gj},母鸡:{mj},小鸡:{xj}')

# 3. 猴子吃桃的问题,有一个猴子摘了很多桃子,
#    第1天吃了这些桃子的一半又多吃了1个,
#    第2天吃了剩下桃子的一半又多吃了1个,
#    后面每天都吃前一天剩下桃子的一半再多吃一个,
#    到第10天的时候发现只剩下一个桃子了,编写程序计算这个猴子第一天摘了多少个桃子
# 10 1  (1 + 1 ) * 2
# 9  4
# 8  10
def test03():
    tz = 1
    for i in range(9):
        tz = (tz + 1) * 2
    print(tz)

# 4. 输入一个正整数,分解这个数字的质因子(如:120=2*2*2*3*5)
def test04():
    num = 120
    k = 2
    while True:
        if num % k == 0:
            print(k)
            num = num / k
            k = 1
        k = k + 1
        if k == num:
            print(k)
            break

# 5. 任何一个偶数都等于两个质数之和,输入一个偶数,输出能组合成这个偶数的2个质数分别是多少
# (如:10=5+5,10=3+7)
def test05():
    even = 100
    for num in range(2, even // 2 + 1):
        flg = True
        for i in range(2, num):
            if num % i == 0:
                flg = False
                break
        if flg:
            k = even - num
            k_flg = True
            for j in range(2, k):
                if k % j == 0:
                    k_flg = False
            if k_flg:
                print(num, k)

# 6. 计算车牌号码,有个肇事司机想逃跑,但是他的车牌号码被三个人看见了,但都没看全,
#    路人甲说:这个车牌号码的前2位是一样的;
#    路人乙说:这个车牌号码的后2位是一样的,但和前2位不一样;
#    路人丙说:这个车牌号码是一个数字的平方。编写程序计算这个4位车牌号码是多少
def test06():
    for i in range(1000, 10000):
        gw = i % 10
        sw = i // 10 % 10
        bw = i // 100 % 10
        qw = i // 1000
        if gw == sw and bw == qw and gw != bw:
            if math.ceil(math.sqrt(i)) == math.sqrt(i):
                print(i)

# 7. 输入2个数字,计算这2个数字的最小公倍数
def test07():
    num1 = int(input('数字1:'))
    num2 = int(input('数字2:'))
    # max_num = num1 if num1 > num2 else num2
    start_num = max(num1, num2)
    end_num = num1 * num2 + 1
    for num in range(start_num, end_num):
        if num % num1 == 0 and num % num2 == 0:
            print(num)
            break

# 8. 输入2个数字,计算这2个数字的最大公约数
def test08():
    num1 = int(input('数字1:'))
    num2 = int(input('数字2:'))
    end_num = min(num1, num2)
    for num in range(end_num, 1, -1):
        if num1 % num == 0 and num2 % num == 0:
            print(num)
            break

# 9. 输出1000以内的所有完数(完数是指这个数字除本身以外的所有因子之和等于本身的数字,
#    如:6=1+2+3,28=1+2+4+7+14)
def test09():
    for num in range(1, 1001):
        result = 0
        for i in range(1, num):
            if num % i == 0:
                result += i
        if result == num:
            print(num)

# 10. 输入一个二进制转换为十进制
def test10():
    str = input('输入一个二进制:')
    index = 0
    sjz = 0
    for num in str[::-1]:
        if num == "1":
            sjz += pow(2, index)
        index = index + 1
    print(sjz)

# 11. 输入一个十进制转换为二进制
def test01():
    for i in range(9):
        for j in range(i + 1):
            print("*", end=' ')
        print()
def test02():
    for i in range(9):
        for j in range(9):
            if j < 8 - i:
                print("  ", end='')
            else:
                print("* ", end='')
        print()
def test03():
    for i in range(9):
        for j in range(9):
            if j < 8 - i:
                print('* ',end='')
        print()
def test04():
    for i in range(8):
        for j in range(8):
            if j <= i:
                print("  ",end='')
            else:
                print('* ', end='')
        print()
def test05():
    for i in range(5):
        for j in range(9-i):
            if j < i:
                print("  ",end='')
            else:
                print('* ', end='')
        print()
def test06():
    for i in range(-4,5):
        for j in range(9 - abs(i) + 1):
            if j == abs(i) or j==8-abs(i):
                print("* ",end='')
            else:
                print('  ', end='')
        print()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号