python,水仙花数

img

img


哪位好心人士能帮我看看我的解法为啥少了一个中间的答案吗,感恩

这么写就对了,每次对比完之后,都应该把s重新置为0:


n = int(input())
s = 0
for i in range(10 ** (n - 1), 10 ** n):
    for j in range(n):
        s += (i % (10 ** (n - j)) // (10 ** (n - j - 1))) ** n
    if s == i:
        print(i)
    s = 0

建议转换成 str 直接操作,会方便很多

for j in str(i):
    s += int(j) ** n
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7566727
  • 这篇博客也不错, 你可以看下python 求解水仙花数,自幂数
  • 除此之外, 这篇博客: Python水仙花数,鸡兔同笼问题,百钱买百鸡问题,斐波那契数列,模拟发微信红包中的 一、题目: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、求50以内能被7整除,但不能同时被5整除的所有整数。

    2、如果一个3位数的各位数字的立方和等于该数自身,则该数称为“水仙花数”。 例如,153 = 13 + 53 + 33,所以153是一个水仙花数。

        求100~1000以内所有“水仙花数”。

    3、设有一份某地连续10年内6月1日的气温记录,其数据为(0C):31、30、33、31、28、32、29、33、35、31,

        试计算其平均气温。

    4、 鸡兔同笼问题。鸡和兔在一个笼子里,从上面数,有35个头; 从下面数,有94只脚。

        问笼中鸡和兔各有多少只?

    5、百钱买百鸡问题。公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,

        如何买?

    6、

    7、计算n!函数

    8、从键盘输入参数n,计算斐波那契数列中第一个大于n的项。

        斐波那契数列为:1,1,2,3,5,8,13,......。即从第3项开始,每一项是前二项之和。

    9、模拟发微信红包

     

  • 您还可以看一下 董付国老师的Python可以这样学(第12季:音频处理与视频处理实战)课程中的 补充:删除视频画面中的水印小节, 巩固相关知识点