python算法:水仙花数

news/2024/9/21 8:33:49

一,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
说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,什么是水仙花数?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31725.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

python算法:n皇后

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

python: 递归函数:汉诺塔

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

CPLEX 初识 -- JAVA实现

CPLEX 初识 -- JAVA实现 本文参考《运筹优化常用模型、算法及案例实战》,同时也是笔者用来记录自己所学知识,如有问题欢迎交流讨论~ 1 环境配置&模型建立 需要装配jar包及配置VM options, 如下图所示:-Djava.library.path="/Applications/CPLEX_Studio2211/java&qu…

VMware产品最新下载地址

好像被博通收购后好多被搜索引擎收录的地址都失效了 可以到博通网站的这个页面去下载,好像需要注册登录,国内QQ邮箱也能注册成功 https://support.broadcom.com/group/ecx/downloads

WPF使用Shape实现复杂线条动画

看到巧用 CSS/SVG 实现复杂线条光效动画的文章,便也想尝试用WPF的Shape配合动画实现同样的效果。ChokCoco大佬的文章中介绍了基于SVG的线条动画效果和通过角向渐变配合 MASK 实现渐变线条两种方式。WPF中的Shape与SVG非常相似,因此这种方式也很容易实现。但WPF中仅有的两种渐…

maven打包失败

问题: 用maven命令打包java应用jar包时打包失败,显示错误“找不到符号”,但是具体的代码中没有找到错误 解决方法: 如果打包的应用为子应用,需要到父应用中打包

EBS 可保留量(Quantity Available To Reserve) 异常 -- 子库间的转移

1、出现可保留量数量为0或者不不相等的情况 2、查看子库状态的生效状态 3、从新跑请求:保留接口管理器4、最后可用量就出来了本文来自博客园,作者:Iven_lin,转载请注明原文链接:https://www.cnblogs.com/ivenlin/p/18192660

IceRPC之调用管道Invocation pipeline与传出请求Outgoing request-快乐的RPC

作者引言 .Net 8.0 下的新RPC很高兴啊,我们来到了IceRPC之调用管道 Invocation pipeline与传出请求 Outgoing request->快乐的RPC, 基础引导,让自已不在迷茫,快乐的畅游世界。调用管道 Invocation pipeline了解如何发送请求requests和接收响应responses。定义 发送请求并…