python基础----求水仙花数

水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身。
如:153 = 1**3 + 5 ** 3 + 3 ** 3

 1 def is_narc_num(n):
 2     # if n <100 or n > 999:
 3     #     return False
 4     # n = str(n)
 5     # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n):
 6     #     return True
 7     # else:
 8     #     return False
 9     """
10         判断任意一个数字,是否水仙花数(不管是几位数)
11     :param n:
12     :return:
13     """
14     n = str(n)
15     length = len(n)
16     sum = 0
17     for i in range(length):
18         sum += int(n[i])**3
19     if sum == int(n):
20         return True
21     return False
22
23 def list_narc_num(start,end):
24     list_narc = []
25     for i in range(start,end+1):
26         if is_narc_num(i):
27             list_narc.append(i)
28     return list_narc
29
30 narc_num = list_narc_num(1,50000)
31 print(narc_num)

原文地址:https://www.cnblogs.com/jeffrey04118110/p/11828884.html

时间: 2024-11-06 13:45:09

python基础----求水仙花数的相关文章

求水仙花数

/** * 求水仙花数 * @param left * @param right */ static void checkFlowerNumber(int left,int right){ for (int i = left; i <= right; i++) { char[] ch = (i+"").toCharArray(); int sum = 0; int num = 0; for (int j = 0; j < ch.length; j++) { num = In

C语言——求水仙花数

昨天,雷老师偶有闲致,评讲了n周前的C程序设计作业.其中讲到了一到求水仙花数的题,给出了一种漂亮的算法,在此记录下来. 原题 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身. 解题 思路 初始化i=100. ①取i的各位数,百位a,十位b,个位c. ②判断i==a∧3+b∧3+c∧3 是否成立 ③如果成立则输出,否则不输出. ④i=i+1,当i小于1000重复①,否则结束. 关键算法:取任意三位数的各位数 算法一:除减法 ①将数除以100,由整型数据特点,小数点后被

整数倒置和求水仙花数

#include<stdio.h> #include<stdlib.h> void numReverse(int num); void numReverseWithoutArr(int num); void main(){ numReverse(123459); getchar(); } void shuiXian(){ //求水仙花数(一个三位数,其各位数字的立方和等于该数本身) int num, f, s, t; for (num = 100; num <= 999; n

C#求水仙花数!

最近在入门学习.NET编程,慢慢的学习了一些门道,同时也需要将学习的点点滴滴记录下来,今天我就自己想了想,把水仙花数的代码写出来,运行也通过了,就贴在这里,分享给大家,也给自己做一个记录. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication10{    class Pr

shell求水仙花数

水仙花数(100-999).水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身 c++代码 int i=100; while(i<=999){ int sum=0; int temp=i; int k=0; while(temp!=0){ k=temp%10; sum=sum+k*k*k; temp=temp/10; } if(sum==i){ cout<<sum<<" "; } i++; } shell 代码 # @author su

Python小代码_9_求水仙花数

for i in range(100, 1000): ge = i % 10 shi = i // 10 % 10 bai = i // 100 if ge ** 3 + shi ** 3 + bai ** 3 == i: print(i, end=' ') #输出结果 #153 370 371 407 原文地址:https://www.cnblogs.com/chuangming/p/8467677.html

Python基础-求两个字符串最长公共前轴

最长公共前缀,输入两个字符串,如果存在公共前缀,求出最长的前缀,如果没有输出no.如“distance”和“discuss”的最长公共前缀是“dis”. s1 = input('请输入第1个字符串-->') s2 = input('请输入第2个字符串-->') # 判断两个字符串长度,避免循环溢出. if len(s1) < len(s2): n = len(s1) else: n = len(s2) # 把s1转换为list L1 = list(s1) # 把s2转换为list L2

输入任意数位求水仙花数

dn57mec2op操尾撇友源徒啪泛撬荚<http://weibo.com/p/230927988313307813253120> n4hvgeknea扒遮豆坟谡嘏终馁值滥<http://weibo.com/p/230927988313218315194368> jii9fcbl08瘸迸桨文蹈诖谱判缮盖<http://weibo.com/p/230927988313330550575104> mxhenjgzwi易臣汾即缕晒迪祷嘉张<http://weibo.co

求100到999之间的水仙花数

所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 for(int a=1;a<=9;a++){ for(int b=0;b<=9;b++){ for(int c=0;c<=9;c++){ if(a*a*a+b*b*b+c*c*c==a*100+b*10+c){ System.out.println(a*100+b*10+c); } } } } 所谓&quo