day5作业2(2019-07-28)

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. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  n = eval(input("输入第几个月:"))
  sum1 = 0
  num = 1
  for _ in range(n):
      sum2 = sum1 + num
      num = sum1
      sum1 = sum2
  print("总的对数有:", sum2)
  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. 输入两个正整数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. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如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)

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. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上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. 获取第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])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)? 2. 古典问题:有...
    数番番阅读 2,498评论 0 0
  • 作业1 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输出所...
    浩子_唯一号阅读 1,441评论 0 1
  • 1.已知一个数字列表,求列表中心元素。 2.已知一个数字列表,求所有元素和。 3.已知一个数字列表,输出所有奇数下...
    zero_Staynight阅读 1,243评论 0 0
  • Page 1: 1.已知一个数字列表,求列表中心元素。 3.已知一个数字列表,输出所有奇数下标元素。 4.已知一个...
    棠球球阅读 3,089评论 0 0
  • 1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)? 2. 古典问题:有...
    LI3e0阅读 1,648评论 0 0

友情链接更多精彩内容