首页 > 编程语言 >python算法:水仙花数

python算法:水仙花数

时间:2024-05-15 10:19:01浏览次数:24  
标签:10 数字 python range 算法 num 100 水仙花

一,for循环:

1,功能:重复执行同一段代码
语法:

for index in range(n): 
    # 循环体代码

index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列

流程图:

2,应用

range可以同时指定start 和stop,用for遍历并打印

1 2 3 4 # 指定 start和stop # print的参数 end=" " 用来使打印不换行 for num in range(3,9):     print(num, end=" ")

运行结果:

3 4 5 6 7 8 

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/12/python-suan-fa-shui-xian-hua-shu/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]

二,什么是水仙花数?

1,如果一个三位数,它的各个位上的数字的立方和等于它本身,我们就称之为水仙花数
例子:371,

3^3 + 7^3 + 1^3 = 27+ 343 + 1 = 371

2,思路:
遍历从100到999之间的所有三位数,
得到各位上的数字,
判断是否其各位的立方求和后等于本身即可

三,编写代码打印水仙花数

1,通过计算得到各位上的数字

1 2 3 4 5 6 7 8 9 10 11 12 # for循环,遍历 100 到 999 之间的数字 for num in range(100, 1000):     hundreds = num // 100  # 获取百位上的数字     tens = (num // 10) % 10  # 获取十位上的数字     units = num % 10  # 获取个位上的数字       # 得到各位上数字的立方的和     sumRes = hundreds ** 3 + tens ** 3 + units ** 3       # 如果当前数字等于立方的和,则表示是水仙花数     if num == sumRes:         print(num)  # 输出水仙花数

运行结果:

153
370
371
407

2,通过转字符串得到各位上的数字

1 2 3 4 5 6 7 8 9 10 11 12 13 # for循环,遍历 100 到 999 之间的数字 for num in range(100, 1000):     s = str(num)     # 得到数字的字符串形式     hundreds = int(s[0])  # 获取百位上的数字     tens = int(s[1])  # 获取十位上的数字     units = int(s[2])  # 获取个位上的数字       # 得到各位上数字的立方的和     sumRes = hundreds ** 3 + tens ** 3 + units ** 3       # 如果当前数字等于立方的和,则表示是水仙花数     if num == sumRes:         print(num)  # 输出水仙花数

运行结果:

153
370
371
407

3,3层循环得到各位上数字

1 2 3 4 5 6 7 8 9 10 import cProfile # for循环,遍历 100 到 999 之间的数字 for hundred in range(1, 10):    # 百位数字,[1,9]     for ten in range(0, 10):    # 十位数字,[0,9]         for unit in range(0, 10):  # 十位数字,[0,9]             num = hundred*100 + ten * 10 + unit     # 数字本身             # 得到各位上数字的立方的和             sumRes = hundred ** 3 + ten ** 3 + unit ** 3     # 立方和             if num == sumRes:                 print(num)  # 输出水仙花数

运行结果:

153
370
371
407
 

标签:10,数字,python,range,算法,num,100,水仙花
From: https://www.cnblogs.com/architectforest/p/18193289

相关文章

  • python: 递归函数:阶乘
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • 视觉定位引导算法相关总结
    1#region===========================两个相机=============================================2publicstaticdouble[]TwoPointLine(doublePoint1X,doublePoint1Y,doublePoint2X,doublePoint2Y)3{4double[]TwoPointPars=newdouble[3];......
  • python: 递归函数:汉诺塔
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:猴子吃桃
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python: 递归函数:斐波那契数列
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • 地理数据可视化的神奇组合:Python和Geopandas
    本文分享自华为云社区《Python与Geopandas:地理数据可视化与分析指南》,作者:柠檬味拥抱。地理数据可视化在许多领域都是至关重要的,无论是研究地理空间分布、城市规划、环境保护还是商业决策。Python语言以其强大的数据处理和可视化库而闻名,而Geopandas作为其地理信息系统(GIS)领域的......
  • python 类型转换函数
    float()将一个字符串或数字转换为浮点数。number=float("123.45")print(number)#输出:123.45int()将一个字符串或数字转换为整数。number=int("123")print(number)#输出:123binary_number=int("101",2)print(binary_number)#输出:5bin()将一个整数......
  • PYTHON、R对小说文本挖掘正则表达式分析案例
    原文链接:http://tecdat.cn/?p=5673原文出处:拓端数据部落公众号 《第二十二条军规》是美国作家约瑟夫·海勒创作的长篇小说,该小说以第二次世界大战为背景,通过对驻扎在地中海一个名叫皮亚诺扎岛(此岛为作者所虚构)上的美国空军飞行大队所发生的一系列事件的描写,揭示了一个非理性的......
  • 代码随想录算法训练营第第七天 | 454.四数相加II 、383. 赎金信 、15. 三数之和 、18
    454.四数相加II建议:本题是使用map巧妙解决的问题,好好体会一下哈希法如何提高程序执行效率,降低时间复杂度,当然使用哈希法会提高空间复杂度,但一般来说我们都是舍空间换时间,工业开发也是这样。题目链接/文章讲解/视频讲解:https://programmercarl.com/0454.四数相加II.html......
  • 代码随想录算法训练营第七天 | 454.四数相加II 383.赎金信 15.三数和
    四数相加II题目链接文章讲解视频讲解时间复杂度o(n2)空间复杂度o(n)classSolution{public:intfourSumCount(vector<int>&nums1,vector<int>&nums2,vector<int>&nums3,vector<int>&nums4){unordered_map<int,int>tw......