day5作业

1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
hou = 0.08
height = hou
sum1 = 0
while height <= 8848130 :
    height += hou*2**sum1
    sum1 += 1
print('对折',sum1,'次能达到珠穆朗玛峰高度')
2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

分析:第一个月兔子数为1
第二个月兔子数为1
第三个月兔子数为2
第四个月兔子数为3
第五个月兔子数为5
第六个月兔子数为8
依次类推。。。每个月的兔子数为之前两个月兔子数的和

num = 0  #假设之前的兔子数为0 
mouth = int(input('输入月份'))
num1 = 1   #第一个月的兔子数
sum1 = 1  #兔子数
for x in range(2,mouth+1):
    sum1 = num + num1
    num = num1
    num1 = sum1
print('你输入月份的兔子数为:',sum1*2)
5. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数

解析:一个数所有能整除他的数(除了他本身)的和等于他就是完数

for x in range(1,1001):         #先取出1-1000所有数
    sum2 = 0                    #用一个变量来保存和
    for b in range(1,x):        #在取出1-x所有的数(因为要除开数字本身所以就不取这个数)
        if x % b ==0:           #如果x除于1-x的数=0 
            sum2 += b           #就用sum2把他们求和
            if sum2 == x:       #如果sum2==x这个数就是完数
            
                print(sum2)    ##和if保持缩进就可以输出所有的完数
        #print(sum2)     #如果print和第一个if保持缩进就是打印的一个数因子和
3. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,
然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,
然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值

你可能感兴趣的:(day5作业)