• while和for循环练习


    1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

    paper_thickness = 0.08 / 1000
    mountain = 8848.13
    count = 0
    while paper_thickness <= mountain:
        paper_thickness *= 2
        count += 1
    print(count)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
      n = eval(input("输入第几个月:"))
      sum1 = 0
      num = 1
      for _ in range(n):
          sum2 = sum1 + num
          num = sum1
          sum1 = sum2
      print("总的对数有:", sum2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
        number = int(input("请输入数:"))
        num = 2
        list1 = []
        str1 = ''
        print("90=", end='')
        while num <= number:
            if number % num == 0:
                number = number / num
                list1.append(str(num))
        
            else:
                num += 1
        str1 = '*'.join(list1)
        print(str1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
        m = int(input("请输入第一个整数m:"))
        n = int(input("请输入第二个整数n:"))
        remainder = 0
        x = m * n
        while n != 0:
            remainder = m % n
            m = n
            n = remainder
        print("最大公约数是:", m)
        print("最小公倍数是:", int(x/m))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数
        for x in range(2, 1000):
            sum1 = 0
            for y in range(1, x):
                if x % y == 0:
                    sum1 += y
            if sum1 == x:
                print(x)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

        ear = int(input("年:"))
        month1 = int(input("月:"))
        day = int(input("日:"))
        list1 = [1, 3, 5, 7, 8, 10, 12]
        list2 = [4, 6, 9, 11]
        list3 = [2]
        add_day = 0
        month = 1
        while month < month1:
            if month in list1:
                day1 = 31
            elif month in list2:
                day1 = 30
            elif month in list3 and (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
                day1 = 29
            else:
                day1 = 28
            day += day1
            month += 1
        print(day)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
        num = int(input("请输入四位数字:"))
        list1 = []
        x = 0
        first_num = num // 1000 + 5
        second_num = num // 100 % 10 + 5
        three_num = num // 10 % 10 + 5
        four_num = num % 10 + 5
        x = first_num
        first_num = four_num
        four_num = x
        x = second_num
        second_num = three_num
        three_num = x
        list1.append(first_num)
        list1.append(second_num)
        list1.append(three_num)
        list1.append(four_num)
        a = [str(i) for i in list1]
        b = "".join(a)
        print("加密后的值为:", b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    1. 获取第n个丑数。 什么是丑数: 因子只包含2,3,5的数

      6 =1* 2*3 -> 丑数

      2 = 1*2 -> 丑数

      7 = 1*7 -> 不是丑数

      1, 2, 3, 4, 5, 6, 8,9,10, 12 ….

        n = int(input("获取第几个丑数:"))
        list1 = [1]
        for x in range(1, n):
            for i in (2, 3, 5):
                if x*i not in list1:
                    list1.append(x*i)
        list1 = sorted(list1)
        print("第n个丑数是:%d" % list1[n-1])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    [Windows内核源码分析0] 引导过程(Phase0部分分析)
    Vulkan 简介
    【vue】如何安装vue 脚手架以及创建脚手架项目_10
    PMP每日一练 | 考试不迷路-9.15(包含敏捷+多选)
    Redis BitMap+SpringBoot 实现签到与统计功能
    @FeignClient注解,fallback和fallbackFactory
    RabbitMQ快速入门笔记
    ultralytics yolo 参数说明(含翻译)
    59 权限提升-Win溢出漏洞及AT&SC&PS提权
    java毕业设计Steam游戏平台系统mybatis+源码+调试部署+系统+数据库+lw
  • 原文地址:https://blog.csdn.net/HuangXiongjin/article/details/127766182