水仙花数计算代码怎么写啊?

我试了好几次了,可就是没写出来,老是报错,不知道哪里没写对,真的不会,急需请教,怎么写啊。

img

img


img

while True:
    a, b = map(int, input().split())
    if a == -1 or b == -1:
        break
    count = 0
    for i in range(a,b+1):
        str_i = str(i)
        sum = 0
        for j in str_i:
            sum += int(j) ** len(str_i)
        if sum == i:
            count += 1
    print(count)

这个里面有例子

#include<bits/stdc++.h> 
using namespace std;

int main(){
    int n,a,b,c;
    cin>>n;
    
    a=n%10;
    b=n/10%10;
    c=n/100;
        
    if(a*a*a+b*b*b+c*c*c==n){
        cout<<"YES";
    }else{
        cout<<"NO";
    }
    return 0;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7532256
  • 这篇博客你也可以参考下:水泥路面、桥梁基建、隧道裂痕裂缝检测数据集
  • 除此之外, 这篇博客: 四年手动软件测试,裸辞后找不到工作怎么办?中的 总结完之后,再来确认下水平) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    按照4年的工作经验,各方面能力的需要到一个什么程度才算是市场常规能力水平呢?从岗位等级来初略定下,至少是中高级水平。对于一个中高级水平的测试工程师需要有一个什么样的能力水平,相信对于一个工作4年的人不会完全不知道。我们这里也来大概总结一下:

    1. 规划项目测试工作。作为一名4年测试经验的老鸟,拿到一个软件产品或者一个版本,去主导整体的测试过程实施和规划是基本的

    2. 能定位出项目的缺陷,配合产品制定项目优化方向。在自己的业务领域有比较丰富经验,在整个产品研发、质量保障或需求实现的层面有一定的见解或优化方案。

    3. 能写出系统的测试用例。能快速设计编写出一份覆盖率较高且有效度高测试用例,并且能审核组员测试用例,并指导优化。这个是作为一个测试工程师核心技能

    4. 自动化技术。可能存在匮乏,但是做了4年不至于听都没听过吧。还是有一些基本的了解,知道各自动化技术实施位置。特别是接口测试,这个已经是现如今测试工程师的标配技能,至少要知道如何使用常见的接口测试工具去进行接口测试了。

    5. 丰富的沟通技巧。互联网企业的快速发展,技术团队产品研发的速度必须快速提供足够的弹药。大量的敏捷模式的应用需要测试人员中启动至关重要的作用,文档弱化,沟通强化,能快速的传达质量要求和需求标准以及把控整个团队质量。所以不管在什么样的团队里面测试需要知道产品研发的各个环境质量保障的方式和方法,来支持快速有效的沟通。

    6. 其它。上面也罗列不少点,软件测试工程师的卖点还有很多很多,现在的市场足够容纳拥有这些技术能力的人。

    虽然你已经发现纯手工测试已经不是软件测试岗位的趋势,那么在下一份工作中就需要不断学习积累和尝试。按照上面6个方面去补充自己专业技能的短板。不要找借口工作中没用、团队没需求以后再看

    就算纯管理岗也是一样需要纯技术支撑的。

     

  • 您还可以看一下 陈虎老师的一小时快速学习屏幕录像和视频编辑实战教程课程中的 如何给视频添加水印小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    问题解答:

    根据参考资料,我可以给出如下建议:

    1. 编写一个函数,用于判断给定的数是否是水仙花数,代码如下:
    def is_narcissistic(num):
        """
        判断一个数是否是水仙花数
        """
        temp = num
        n = len(str(num))
        total = 0
        while temp > 0:
            digit = temp % 10
            total += digit ** n
            temp //= 10
        if num == total:
            return True
        else:
            return False
    
    1. 编写一个循环,遍历100-999之间的所有数,并调用上一步的函数进行判断,代码如下:
    for i in range(100, 1000):
        if is_narcissistic(i):
            print(i)
    

    这样就能打印出所有的水仙花数了。

    要注意的是,不同于参考资料的实现,这个函数使用了通用的方法来计算给定数值的位数和各位数字的立方和。此外,高效的实现方式还包括了位运算等技巧,但不是本篇回答的重点。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^