鱼C论坛

 找回密码
 立即注册
查看: 965|回复: 4

[已解决]求助。。。

[复制链接]
发表于 2020-3-26 21:58:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
做作业时遇到的问题,要求是弄一个寻找出所有水仙花数的函数,我看着没啥问题,但就是不行,技术有限,代码有点长,见谅见谅。。

>>> def function1():
        list1 = []
        for i in range(100,1000):
                if (i-(i//10*10))**(i-(i//10*10)) + ((i-(i-(i//10*10)+(i//100*100)))/10)**(i-(i//10*10)) + (i//100**(i-(i//10*10))) == i:
                        list1.append(i)
                        continue
                else:
                        continue
        print(list1)

        
>>> function1()
[]
最佳答案
2020-3-26 22:12:24
在你的程序基础上帮你修改了
你的程序中求取各位是不对的
另外,水仙花数是各个位的三次方之和与原数相等称之为水仙花数
def function1():
    list1 = []
    for i in range(100,1000):
        if ((i%10)**3 + (i%100//10)**3 + (i//100)**3) == i:
            list1.append(i)
            continue
        else:
            continue
    print(list1)

        
function1()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-26 22:05:29 | 显示全部楼层
你把list1定义到外面,不然每次continue
就会重置列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-26 22:12:24 | 显示全部楼层    本楼为最佳答案   
在你的程序基础上帮你修改了
你的程序中求取各位是不对的
另外,水仙花数是各个位的三次方之和与原数相等称之为水仙花数
def function1():
    list1 = []
    for i in range(100,1000):
        if ((i%10)**3 + (i%100//10)**3 + (i//100)**3) == i:
            list1.append(i)
            continue
        else:
            continue
    print(list1)

        
function1()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-26 22:23:30 | 显示全部楼层
你是不是对水仙花数的算法有误解呀?为什么会有**(i-(i//10*10)),水仙花数每位数的3次冥之和等于自身,你的算法完全不对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-26 22:32:26 | 显示全部楼层
在我这代码别的地方还有些问题时,我也是弄每个3次幂的,结果一不小心被我一个朋友误导了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-24 22:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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