python练习——水仙花数

题目:

请判断一个数是不是水仙花数。
其中水仙花数定义各个位数立方和等于它本身的三位数。
输入
有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)
输入0表示程序输入结束。
输出
如果n是水仙花数就输出Yes
否则输出No
样例输入
153
154
0
样例输出
Yes
No


 1 class Shui:
 2
 3     def __init__(self,str):
 4         self.str=str
 5
 6     def carculate(self):
 7         n=len(self.str)
 8         sum = 0
 9         for i in range(0,n):
10             item = int(self.str[i:i+1])
11             items = item*item*item
12             sum = sum+items
13         return sum
14
15 list =[]
16
17 while True:
18     str= input("请输入~")
19     if str==‘0‘:
20         for i in list:
21             hua = Shui(i)
22             sum = hua.carculate()
23             if sum == int(i):
24                 print("Yes")
25             else:
26                 print("No")
27         break
28     else:
29         list.append(str)
时间: 2024-08-02 04:29:30

python练习——水仙花数的相关文章

Python实现水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)<摘自百度百科>. 下面给出三位数水仙花Python代码实现:: # 循环遍历出所有三位数 for tmp in range(100, 1

python 取水仙花数的问题

什么是水仙花数 "水仙花数" 代码 for x in range(100, 1000): # 取个位数 a = x % 10 # 取十位数 b = int(x % 100 / 10) # 取百位数 c = int(x / 100) if a**3 + b**3 + c**3 == x: print(x) 一个小小的测试,重点在怎么取到各位的数字,我竟然想了很久,参考了多个博客-- 为自己的智商感到捉急-- 另外可以参考以下博客的答案: https://blog.csdn.net/xie

用Python编写水仙花数

def sxh(start, end): if end >= start and start >=100 and end<= 999: num=start #将num的值初始化 L =[] while num<=end: x=num%10 #num取个位数 y=num//10%10 #num取十位数 z=num//100 #num取百位数 if (num==pow(x,3)+pow(y,3)+pow(z,3)): L.append(num) #将num放在一个列表里 num=num

Python练习题 009:水仙花数

[Python练习题 009] 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方. ---------------------------------------------------------------------- 这题也是送分题,只要能把任意三位数的百位.十位.个位拆解出来就好办了.思路:将任意3位数除以100再向下取整,即可得到百位数.将这个3位数减去(百位数*10

Python基础练习-003-求100-999之间所有的水仙花数

水仙花数是指一个n位的正整数(n>=3),它的每个数字的n次幂之和等于它本身.例如:153=1*1*1+5*5*5+3*3*3,153为三位数,它的每个数字的三次方之和等于153.用python语言实现求出100~999之间的所有水仙花数. 分析过程:将正整数n的个位十位百位分别取出,再求幂之和:个位百位比较好拆分,十位的话可以先减去百位再用除法计算. 1 # -*- coding:utf-8 -*- 2 # @Author : 飘飘_emmm 3 print("100-999之间的水仙花

用python语言来判断一个数是否是水仙花数?

#用python语言来判断一个数是否是水仙花数? #水仙花数: # 1) 一个三位正整数 ( 即取值区间 [100,1000) ) # 2) 个位数字的立方+十位数字的立方+百位数字的立方=它本身  (即数字 abc = a**3 + b**3 + c**3) 代码: for a in range(1,10):    #定义百位数取值区间 (1,9)     for b in range(10):    #定义十位数取值区间 (0,9)         for c in range(10):  

python 打印所有的水仙花数

目标分析: #水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 利用for循环控制100-999个数,每个数分解出个位,十位,百位. 一.参考解法: 1 for a in range(1,10): 2 for b in range(0,10): 3 for c in range(0,10): 4 s1= a*100+b*10+c 5 s2= pow(a,3)+pow(

python中3位数中的水仙花数,和5位数中回文数的个数

3位数中的水仙花数打印num=100 e=0while num<1000: b=num%10 c=num//10%10 d=num//100 if b**3+c**3+d**3==num: e+=1 print (num) num+=1print (e) 5位数中的回文数的个数 num=10000e=0while num<=99999: a=num//10000 b=num//1000%10 c=num%100//10 d=num%10 if a==d and b==c: e+=1 print

打印出三位数的水仙花数Python

水仙花数计算 ???????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????? 1.题目描述 “3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身.例如:ABC是一