python水仙花数的编程是什么?

 我来答
休闲娱乐助手之星M
2021-05-19 · TA获得超过53.8万个赞
知道大有可为答主
回答量:2857
采纳率:100%
帮助的人:113万
展开全部

def demo():

    temp = []

    for i in range(100, 1000):

        a = i // 100 # 百位

        b = i // 10 % 10 # 十位

        c = i % 10 # 个位

        if a ** 3 + b ** 3 + c ** 3 == i:

            temp.append(str(i))

    return ",".join(temp)

print("1000以内的水仙花数有:{}".format(demo()))

用C语言实现水仙花数:

#include <stdio.h

#include <stdlib.h>

int main() 

    int i,j,k,n; 

    printf("'water flower'number is:"); 

    for(n=100;n<1000;n++) 

    { 

        i=n/100;/*分解出百位*/ 

        j=n/10%10;/*分解出十位*/ 

        k=n%10;/*分解出个位*/ 

        if(n==i*i*i+j*j*j+k*k*k) 

        { 

            printf("%-5d",n); 

        } 

    } 

    printf("\n");

    return 0;

老男孩教育
2022-08-26 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部
编程思路:首先利用for语句循环从100到999的所有数字,并且把它赋值给变量n;然后分解变量n,获取个位数k、十位数j和百位数i;最后判断i、j和k数的立方和是否等于n,如果等于,就使用“print(n)”语句输出即可。
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
Python输出所有的水仙花数:
for n in range(100,1000):
i = n // 100
j = n // 10 % 10
k = n % 10
if n == i ** 3 + j ** 3 + k ** 3:
print (n)
输出:
153
370
371
407
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
第一行:因为水仙花数是一个三位数,所以我们就循环从100到999的所有数字,并且把它赋值给n
for n in range(100,1000):
第二行:用n整除100,得到的其实就是三位数的百位数字,将它赋值给i
i = n // 100
第三行:用n整除10,得到的是百位数和十位数组成的两位数,再用这个数除以10求余数,就得到了我们的十位数字,将它赋值给j
j = n // 10 % 10
第四行:用n除以10,求余数,得到的就是n的个位数数字,将它赋值给k,这个时候三位数n的百位、十位、个位数字,我们都已经得到,并且分别赋值给了i,j,k
k = n % 10
第五行:判断如果n等于它百位数字的立方+十位数字的立方+个位数字的立方,那么它就是水仙花数,这个时候,将满足条件的n打印出来,否则就进入下一个循环
if n == i ** 3 + j ** 3 + k ** 3:
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式