2019-03-11作业

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

m = 0.08/1000
count = 0
while True:
    m *= 2
    count += 1
    if m > 8848.13:
        break
print(count,m)

2.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

  1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。

4.输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。

5.一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数

for i in range(2,1000):
    a = 0
    for x in range(1,i):
        if i % x == 0:
            a += x
    if a == i:
        print(a)

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

  1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
i = 0
while True:
    num = int(input('请输入密码:'))
    if 1000 <= num < 10000:
        a = num // 1000
        b = num // 100 % 10
        c = num // 10 % 10
        d = num % 10
        a,b,c,d = a+5,b+5,c+5,d+5
        a,b,c,d = a%10,b%10,c%10,d%10
        print('加密后密码::',d*1000+c*100+b*10+a) 
        break
    else:
        i += 1
        if i >= 3:
            print('密码错误次数超过三次,无法继续输入')
            break

你可能感兴趣的:(2019-03-11作业)