博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day 5 前四天总结练习
阅读量:5322 次
发布时间:2019-06-14

本文共 1970 字,大约阅读时间需要 6 分钟。

水仙花数

水仙花数是各位立方和等于这个数本身的数 abc = a*a*a+b*b*b+c*c*c 例如 153 = 1*1*1 + 5*5*5 + 3*3*3 示例1
'''找出100~999之间的所有水仙花数'''for num in range(100, 1000): # 遍历100到999    low = num % 10 # 除10取余数是个位数    mid = num // 10 % 10 # 除10取模 再除10取余数是十位数    high = num // 100 # 除100取模 是百位数    if num == low ** 3 + mid ** 3 + high ** 3: # 计算各个位数的立方和        print(num) # 输出水仙花数
 

完美数

  完美数是除自身外其他所有因子的和正好等于这个数本身的数

  例如 6 = 1 + 2 + 3

               28 = 1 + 2 + 4 + 7 + 14

  示例2

'''找出1~9999之间的所有完美数第一种方案1 遍历1-9999, 列表 range(1,10000)2 假设当前遍历值n, 二次遍历1到 n的平方根+13 假设二次遍历值m, 判断m是不是n的因子(取余为0),如果是,计算因子m的加和4 如果m是n的因子,当m大于1并且不是n的平方根时, 那么m*k = n, k是另外的一个因子,将k加和5 二次遍历结束后,判断因子的加和是否等于n, 如果相等,则n是完美数6 继续遍历1-9999'''import timeimport mathstart = time.perf_counter()for num in range(1, 10000):    sum = 0    for factor in range(1, int(math.sqrt(num)) + 1):        if num % factor == 0:            sum += factor            if 1 < factor != num / factor:                sum += num / factor    if sum == num:        print(num)end = time.perf_counter()print("方案一 执行时间:", (end - start), "秒")'''第二种方案'''start2 = time.perf_counter()for num in range(1, 10000):    sum = 0    for factor in range(1, num//2 + 2):        if num % factor == 0:            sum += factor    if sum == num:        print(num)end2 = time.perf_counter()print("方案二 执行时间:", (end2 - start2), "秒")'''16284968128方案一 执行时间: 0.0710596 秒16284968128方案二 执行时间: 2.4442378 秒通过比较上面两种不同的解决方案的执行时间 意识到优化程序的重要性'''

 

百元百鸡

1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡 问公鸡 母鸡 小鸡各有多少只? 示例3
'''1 假设公鸡 x只,母鸡 y 只, 小鸡z 只2 公鸡一只5元, 公鸡的数量必须在 0-19之间3 母鸡一只3元, 母鸡的数量必须在 0-33之间4 总共100只鸡, 小鸡的数量是100-x-y5 总共花费100元,所以5x+3y+(100-x-y)/3 = 1006 遍历x,y的取值范围,如果等式5成立,那么此次遍历的x,y,z就是购买的数量'''for x in range(0, 20):    for y in range(0, 33):        z = 100 - x - y        if 5 * x + 3 * y + z / 3 == 100:            print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (x, y, z))'''要理解程序背后的算法 - 穷举法公鸡: 0只, 母鸡: 25只, 小鸡: 75只公鸡: 4只, 母鸡: 18只, 小鸡: 78只公鸡: 8只, 母鸡: 11只, 小鸡: 81只公鸡: 12只, 母鸡: 4只, 小鸡: 84只'''
 

 

 

 

 
 
 

 

转载于:https://www.cnblogs.com/greatX/p/10916327.html

你可能感兴趣的文章
鼠标悬停提示文本消息最简单的做法
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
大数据学习
查看>>
简单工厂模式
查看>>