python_day5_homework

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

conut = 1  
while True:
    num =(0.08 /1000) * (2**conut)
    if num  >= 8848.13:
        print('第1题: 需要对折的次数:',conut)
        break
    conut += 1  

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

t1 = 2 #一个月内的兔子
t2 = 0 #二个月内的兔子
t3 = 0 #三个月内的兔子
t4 = 0 #可以下崽的兔子
print('第2题: ',end='')   
for x in range(1,13):
    
    t4,t3,t2,t1 = t4+t3,t2,t1,t4 

    num = t1+t2+t3+t4
    print(x,'月', num ,'只 ',sep = '',end='')
print()

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

num = 90
num = int(input('将一个正整数分解质因数,请输入一个大于1的数:'))
print('第3题: ',num,'=',sep = '',end='')
while num != 0 :
    for x in range(2,num+1):    
        if num / x == num // x:
            print(x,sep='',end='')
            break               
    num //= x
    if num == 1:
        break
    print('x',end='')   
print() 

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

#两个数的乘积等于这两个数的最大公约数与最小公倍数的乘积。
a = 6
b = 15
# a = int(input('第4题:输入1个正整数m:'))
# b = int(input('第4题:输入1个正整数n:'))
c = a * b
print('第4题:',a,'和',b,'的最大公约数是:',end ='')
while True:
    if a < b :
        a,b = b,a
    if a % b == 0:
        print(b,'最小公倍数是:',c // b)
        break   
    a,b = b , a % b 

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

print('第5题: 1000以内的所有完数:',end='')
for num in range(2,1000):
    sum1 = 0
    for x in range(1,num):  
        if num / x == num // x:
            sum1 += x
    if num == sum1:
        print(num,end=' ')  
print()

6.输入某年某月某日,判断这一天是这一年的第几天?

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

# 1 3 5 7 8 10 12  = 31
# 4 6 9 11 = 30
# 2 = 28

# year = int(input('第6题:请输入年:'))
# mon = int(input('第6题:请输入月:'))
# day = int(input('第6题:请输入日:'))
year = 2000
mon = 12
day = 31
date = day 
for x in range(1,mon):
    if x == 1 or x == 3 or x == 5 or x == 7 or x == 8 or x == 10  :
        date += 31
    elif x == 4 or x == 6 or x == 9 or x == 11:
        date += 30
    else:
        if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
            date += 29
        else:
            date += 28  
print('第6题:',year,'年',mon,'月',day,'日是',year,'的第',date,'天')

7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,

加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,
再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值

n1 = 9
n2 = 8
n3 = 7
n4 = 6
# n1 = int(input('第7题:请输入数据第一位(0-9):'))
# n2 = int(input('第7题:请输入数据第二位(0-9):'))
# n3 = int(input('第7题:请输入数据第三位(0-9):'))
# n4 = int(input('第7题:请输入数据第四位(0-9):'))
print('第7题:',n1,n2,n3,n4,'加密后的数是:',end = '')
print((n4 + 5) % 10,(n3 + 5) % 10,(n2 + 5) % 10,(n1 + 5) % 10)

s = '0123' #input('第7题: 一个4位数:')
n1,n2,n3,n4 = int( s[0]), int( s[1]), int( s[2]),int( s[3])
n1,n2,n3,n4 = (n4 + 5) % 10 , (n3 + 5) % 10 , (n2 + 5) % 10 , (n1 + 5) % 10
print('第7题:',s,'加密后的数是:',str(n1)+str(n2)+str(n3)+str(n4))

运行结果

第1题: 需要对折的次数: 27
第2题: 1月2只 2月2只 3月2只 4月4只 5月6只 6月8只 7月10只 8月14只 9月20只 10月28
只 11月38只 12月52只
第3题: 90=2x3x3x5
第4题: 6 和 15 的最大公约数是:3 最小公倍数是: 30
第5题: 1000以内的所有完数:6 28 496
第6题: 2000 年 12 月 31 日是 2000 的第 366 天
第7题: 9 8 7 6 加密后的数是:1 2 3 4
第7题: 0123 加密后的数是: 8765

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 8,580评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,543评论 0 41
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 11,974评论 0 9
  • 我一开始很喜欢python的哲学,然后买了一个《python学习手册》,简单的了解了一下python 不过因为没什...
    妄心xyx阅读 4,589评论 0 22
  • 从对车的不了解,到最后定车,前后差不多一个月的时间。 前期主要是在汽车之家看排行榜,懂省油角度来来考虑。首选1.2...
    素描一米阅读 1,688评论 0 0

友情链接更多精彩内容