吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 868|回复: 10
收起左侧

[已解决] 菜鸟求助关于python水仙花数求解的小问题

[复制链接]
qiangfuzhou 发表于 2022-8-23 11:07
本帖最后由 qiangfuzhou 于 2022-8-24 08:51 编辑

看到有一个关于水仙花数的一段语言自己试了试,有地方不懂 。求大佬求看看2件事:
1. 给帮忙看看 #的分析是不是对,都是我自己琢磨的,不知道对不对。
2. 给帮忙看看最后一句为什么要写,为什么要这么写。不理解


i=100;a=0;b=0;c=0  #因为水仙花数是个三位数,所以i的取值范围是100~999,a代表百位数,取值是0~9,b代表是十位数,取值是0~9,才代表个位数,取值是0~9。
while i<1000:           #根据while条件判断进入遍历循环
缩进 a=i//100          #跟水仙花数的特性,百十分三位的数的3次方之和等于该数,算出百位数,十位数,个位数。
缩进 b=(i-a*100)//10
缩进 c=i-a*100-b*10
缩进 if  i==(a**3+b**3+c**3):     #当a,b,c,三个数满足水仙花数特性时,进入条件判断,
缩进  缩进 print(i)                     #打印水仙花数
缩进 i+=1                                 #不知道为什么要写最后这一行。试了一下,写最后一行就能显示,不写就不显示数据。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ForMemRS 发表于 2022-8-23 11:47

学好基础再来练习算法。 不写i+=1. i 就不会自增 永远是100 怎么能实现
甜萝 发表于 2022-8-23 11:51
wawai 发表于 2022-8-23 11:57
分析基本对的。如果循环体内没有i+=1的话,i就一直是100了,也就是死循环了;100不是水仙花数,不会有输出;同时你判断的时候不是用‘=’,这个是赋值符,应该用‘==’。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
qiangfuzhou + 1 + 1 热心回复!

查看全部评分

凡人i 发表于 2022-8-23 13:04
最后一行的意义就是让i从100递增到999,不然i就没办法递增了
甜萝 发表于 2022-8-23 13:14
wawai 发表于 2022-8-23 11:57
分析基本对的。如果循环体内没有i+=1的话,i就一直是100了,也就是死循环了;100不是水仙花数,不会有输出 ...

确实 最后一行是个跳出循环的出口 没有这个出口 while下面的语句就会一直循环  
 楼主| qiangfuzhou 发表于 2022-8-23 13:50
wawai 发表于 2022-8-23 11:57
分析基本对的。如果循环体内没有i+=1的话,i就一直是100了,也就是死循环了;100不是水仙花数,不会有输出 ...

==是打字的时候没注意,少打了一个=,感谢大佬解惑。i=+1的问题感觉有点明白了。
 楼主| qiangfuzhou 发表于 2022-8-23 13:56
ForMemRS 发表于 2022-8-23 11:47
学好基础再来练习算法。 不写i+=1. i 就不会自增 永远是100 怎么能实现

看的书上就是写了复合赋值符号表示什么意思。但是没写怎么用。书上就是将while循环语句写了这个水仙花的例子。我一开始看不懂,就一点点琢磨。也不知道这个叫算法。刚自学到while这。
 楼主| qiangfuzhou 发表于 2022-8-23 13:59
凡人i 发表于 2022-8-23 13:04
最后一行的意义就是让i从100递增到999,不然i就没办法递增了

稍微懂了一些,感谢指点
demo_plus 发表于 2022-8-24 08:53
初值
while (条件):
    循环体
    使while循环趋向于结束的语句
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表